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

Как программно создать и удалить combobox   Найти похожие ветки 

← →
IronWit ©   (2003-07-21 17:31) [0]

привязанный к listview строго определенному.

Почему то когда я это делаю ручками, то после 2-3 трех созданий\удалений программа падает с ошибками 204 или 216. Что бы это значило?

Заранее спасибо.


← →
SPeller ©   (2003-07-22 03:51) [1]

Ошибка в 17-й строке.


← →
IronWit ©   (2003-07-22 09:22) [2]

2SPeller.  :)

создание
if combobox<>nil then
begin
   combobox:=NewComboBox( listview3, [] );
   combobox.OnLeave:=ComboBox1Leave;
   combobox.Width:=listview3.LVColWidth[0];
   combobox.DeleteLines(0,combobox.count);
   combobox.Add("");
   combobox.Add("Rip");
   for i:=0 to listview1.lvcount-1 do
     begin
       if length(listview1.LVItems[i,0])>0 then combobox.Add(listview1.LVItems[i,0]);
     end;
   if length(listview3.LVItems[listview3.curindex,0])>0 then combobox.Text:=listview3.LVItems[listview3.curindex,0];
   combobox.show;
end;

Удаление

в процедурке

procedure TForm1.ComboBox1Leave(Sender: PObj);
begin
 listview3.lvItems[cur,0]:=combobox.Text;
 combobox.Destroy;
 combobox:=nil;
end;


← →
savva ©   (2003-07-22 09:50) [3]

я бы сделал
combobox.Free;
вместо
combobox.Destroy;

но это еще надо проверить:)


← →
ironwit ©   (2003-07-22 10:29) [4]

работает :)


← →
SPeller ©   (2003-07-22 10:36) [5]

А ещё у меня вызывает сомнение вот это кусок:

> if combobox<>nil then
> begin
>    combobox:=NewComboBox( listview3, [] );

Может, всё-таки, в условии надо combobox = nil ? А то получается, что если комбобокс создан (не равен nil), то ты его создаёшь по-новой.


← →
Плохиш   (2003-07-22 10:38) [6]

А слабо посмотреть в справке, что Borland про Destroy пишет?


← →
savva ©   (2003-07-22 10:57) [7]

> Плохиш   (22.07.03 10:38)
> А слабо посмотреть в справке, что Borland про Destroy пишет?
Забудь про справку от Borland - это теперь не самое главное, так как там все про классы


← →
IronWit ©   (2003-07-23 08:56) [8]

2SPeller

я вообще ту строку убрал. Так как у меня при выходе из combobox снала отрабатывает процедурка onleave - которая 100% убивает его.



← →
Dimaxx ©   (2003-07-25 23:57) [9]

А зачем каждый раз создавать/удалять? Надо просто создать его один раз при создании формы, сделать невидимым, заполнить данными, установить на нужное место и отобразить. После выбора данных скрыть. Удалить при закрытии формы. Вот и все.


← →
IronWit ©   (2003-07-26 09:26) [10]

Хотелось разобраться... :)



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

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



Память: 0.47 MB
Время: 0.021 c
14-1078402407
Petr V. Abramov
2004-03-04 15:13
2004.04.04
Жизнь на Марсе есть!


3-1078405804
balabolkin
2004-03-04 16:10
2004.04.04
Properties FILTER to TDBF


1-1079037912
Павел
2004-03-11 23:45
2004.04.04
Печать StringGrid


14-1078557544
ИМХО
2004-03-06 10:19
2004.04.04
Вопрос создателям Delphi-компонентов


9-1063191841
Agent[007]
2003-09-10 15:04
2004.04.04
Создание своих типов...




   Наверх