Вниз
Скачать: CL | DM;

Listbox с элементами переменной высоты   Найти похожие ветки 

 
Муть   (2003-01-20 13:56) [0]

Здравия желаю!

Возникла такая задача - менять высоту элемента Listbox в зависимости от того, находится ли этот элемент в состоянии odSelected. Оказывается что сделать это непросто.
Сейчас я пытаюсь сохранять номер выбранного элемента в переменной, далее вызывать процедуру перерисовки и анализировать этот номер. Проблема в том, что listbox1.repaint не приводит к вызову кода вычисления высоты элементов. Поэтому вопрос можно сузить до следуюшего - какое сообщени необходимо послать listbox чтобы он для каждого из элементов было вызвано wm_measureitem?


 
Муть ©   (2003-01-21 10:55) [1]

Как всегда, приходится самому отвечать на свой же вопрос.
Делается это так:
Функции height и heightfull вычислияют высоты для отмеченного и неотмеченного элементов. Переменная prev хранит номер предыдущего отмеченного элемента.

procedure TForm1.ListBox2Click(Sender: TObject);
begin
if prev>=0 then
listbox2.perform(LB_SETITEMHEIGHT, prev, makelparam((current as xList).height(prev), 0));
listbox2.perform(LB_SETITEMHEIGHT, listbox2.ItemIndex, makelparam((current as xList).heightfull(listbox2.ItemIndex, listbox2.Canvas, listbox2.Width), 0));
listbox2.Refresh;
prev:=listbox2.ItemIndex;
end;


 
Игорь Шевченко ©   (2003-01-21 11:30) [2]


> Как всегда, приходится самому отвечать на свой же вопрос.
>


Однако...


 
Муть ©   (2003-01-21 14:15) [3]

Добавлю, что Игорь Шевченко сыграл ключевую роль в поиске ответа на этот вопрос. За что ему спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
1-96789
Alex G
2003-01-22 19:24
2003.01.30
Handle


1-96826
Kurt_
2003-01-20 19:34
2003.01.30
Люди, подскажите как отследить нажатие функциональнх клавиш типа


1-96739
qwerty2
2003-01-22 12:57
2003.01.30
Динамический массив компонентов?


1-96810
Imshanya
2003-01-20 17:45
2003.01.30
Проблема с формами


3-96532
qwerty2
2003-01-14 23:46
2003.01.30
Изменить текст в DBLookupComboBox




   Наверх