Форум: "Основная";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
ВнизTListBox: Items разной высоты Найти похожие ветки
← →
Axis_of_Evil © (2006-11-14 15:50) [0]0) пусть вызывается ListBox1.Items.AddObject(str, obj);
в ответ вызывается ListBox1.MeasureItem, но obj еще не добавлен, т.е. ListBox1.Items.Objects[0] = nil. в некоторых источниках называют багом ListBox (API) :>
так как же быть, если высоту item"а в MeasureItem нужно вычислить, используя соотв. ему obj?
1) есть надобность менять высоту Item"а по DoubleClick.ListBoxDblClick(Sender: TObject);
begin
with ListBox do
with Items.Objects[ItemIndex] as TSharedItem do
begin
Expanded := not Expanded;
if Expanded then
SendMessage(SharesListBox.Handle, LB_SETITEMHEIGHT,
SharesListBox.ItemIndex, 100)
else
SendMessage(SharesListBox.Handle, LB_SETITEMHEIGHT,
SharesListBox.ItemIndex, 50);
Invalidate;
end;
end;
почти работает, но в случае наличия видимого незанятого item"ами пространства - забывает его перериовать (т.е. при свертке от 100 к 50 одного Item"а остается "след" нижнего)
ваши предложения?
← →
clickmaker © (2006-11-14 16:39) [1]а полностью его перерисовать не помогает?
← →
Axis_of_Evil © (2006-11-14 16:57) [2]что Ivalidate, что Repaint - один эффект.
не понимаю ..
← →
clickmaker © (2006-11-14 17:04) [3]
> [2] Axis_of_Evil © (14.11.06 16:57)
RedrawWindow еще попробуй. RDW_INVALIDATE or RDW_ERASE or RDW_UPDATENOW. По идее, должен фон перерисовать
← →
Axis_of_Evil © (2006-11-14 17:08) [4]clickmaker © (14.11.06 17:04) [3]
тигра, ты чудо. спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.047 c