Форум: "KOL";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизОбработка события ComboboxDropDown Найти похожие ветки
← →
chum (2005-07-20 15:17) [0]Столкнулся с такой проблемой:
Обрабатываю событие OnDropDown при этом в Combobox добавляются строки. так вот когда отрисовывется выпадающий список в нём отрисовывается только одна строка. Происходит это потому что событие fOnDropDown вызывается в самим конце функции OnDropDown:
procedure ComboboxDropDown( Sender: PObj );
var
CB: PControl;
IC: Integer;
begin
CB := PControl( Sender );
IC := CB.Count;
if IC > 8 then IC := 8;
if IC < 1 then IC := 1;
SetWindowPos( CB.Handle, 0, 0, 0, CB.Width, CB.Height * (IC + 1) + 2,
SWP_NOMOVE + SWP_NOZORDER + SWP_NOACTIVATE + SWP_NOREDRAW +
SWP_HIDEWINDOW);
SetWindowPos( CB.Handle, 0, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
+ SWP_NOZORDER + SWP_NOACTIVATE
+ SWP_NOREDRAW + SWP_SHOWWINDOW);
if assigned( CB.fOnDropDown ) then
CB.fOnDropDown( CB );
end;
Мне кажется, что стоит так
procedure ComboboxDropDown( Sender: PObj );
var
CB: PControl;
IC: Integer;
begin
if assigned( CB.fOnDropDown ) then
CB.fOnDropDown( CB );
CB := PControl( Sender );
IC := CB.Count;
if IC > 8 then IC := 8;
if IC < 1 then IC := 1;
SetWindowPos( CB.Handle, 0, 0, 0, CB.Width, CB.Height * (IC + 1) + 2,
SWP_NOMOVE + SWP_NOZORDER + SWP_NOACTIVATE + SWP_NOREDRAW +
SWP_HIDEWINDOW);
SetWindowPos( CB.Handle, 0, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
+ SWP_NOZORDER + SWP_NOACTIVATE
+ SWP_NOREDRAW + SWP_SHOWWINDOW);
end;
← →
chum (2005-07-21 16:00) [1]Жду ответа от разработчика!!!
← →
Vladimir Kladov (2005-07-22 13:55) [2]разработчик оттягивается на даче, аж до 1 августа, и читает форум раз в три дня со своего ноутбука... Так что подождите до конца моего отпуска, все равно делами я сейчас занимаюсь другими.
← →
chum (2006-02-02 12:15) [3]Вспомнил про сей вопрос. Может Владимир испарвит.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c