Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.30;
Скачать: 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 вся ветка

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
8-96892
Vadim SA
2002-10-10 13:17
2003.01.30
И снова ICO


1-96707
крот
2003-01-21 10:05
2003.01.30
Окна и сообщения


3-96552
asf
2003-01-08 23:45
2003.01.30
Decision Cube и запрос SQL


14-97021
Polevi
2003-01-11 19:27
2003.01.30
Про хакеров


7-97049
Seldon
2002-11-18 21:38
2003.01.30
CPU