Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: CL | DM;

Вниз

Вызов событий Combobox созданных runtime   Найти похожие ветки 

 
dzmitry_li   (2005-11-14 16:32) [0]

Нда, споткнулся на простом коде...
создаю Combobox runtime, устанавливаю обработчик событий, но они как я не бьюсь - не вызываются,
Delphi2005 и Delphi7 проверено и неработоспособно... куда плясать?

код ниже


procedure TForm1.FormCreate(Sender: TObject);
begin
 Col.Combo:=TComboBox.Create(nil); // Form1, Application
 Col.Combo.ItemHeight:=13;
 Col.Combo.DropDownCount:=16;
 Col.Combo.Style:=csDropDownList;
 Col.Combo.Parent:=Form1;
 Col.Combo.OnChange:=ComboBox1Change;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ShowMessage("Ну вызовись этот грёбаный метод!")
end;


 
Reindeer Moss Eater ©   (2005-11-14 16:42) [1]

Прочитай Note к свойству OnChange в справке.


 
dzmitry_li   (2005-11-14 16:54) [2]

блин...

ну ладно... читаю хелп по OnClick (специально и внимательно), не нахожу крамолы
и пишу


Col.Combo.OnClick:=ComboBox1Click;
end;

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
ShowMessage("Ну вызовись этот грёбаный метод!")
end;


результат тот же...

из всех перепробаванных методов рантайм ловятся только события клавиатуры
непорядок - как исправить


 
DesWind ©   (2005-11-14 17:01) [3]

Этот код полностью рабочий. А что такое Col ?


 
dzmitry_li   (2005-11-14 18:03) [4]

переволновался... прошёлся по улице (когда шёл домой с работы), и проблема решилась
отвечу сразу на вопрос что такое Col, а допустим это

type TCol=record
p: TPanel;
Combo: TComboBox;
end;
var
Col: TCol;

второе, хотел внедрить в StringGrid в некоторые ячейки выпадающий список ComboBox
соответственно делал вышеприведённый код.Забавно что когда Parent форма - события работают, когда парент StringGrid - снова не работает.
То что у меня проглотилось и заработало вот код

Col.p:=TPanel.Create(Application);
Col.p.Visible:=True;
Col.p.Parent:=StringGrid2;
Col.Combo:=TComboBox.Create(nil);
Col.Combo.Visible:=True;
Col.Combo.Tag:=i;
Col.Combo.Parent:=Col.p;
Col.Combo.OnClick:=ComboBox1Click;
Col.Combo.Items.Add("1");
Col.Combo.Items.Add("2");
Col.Combo.Items.Add("3");
Col.Combo.Height:=100;
Col.p.Width:=Col.Combo.Width;
Col.p.Height:=Col.Combo.Height;

конечно это черновой код, для теста, в реальности не так будет реализовано - не пугайтесь
спасибо тем кто пытался помочь



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

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

Наверх




Память: 0.47 MB
Время: 0.038 c
14-1132559785
Игорь Шевченко
2005-11-21 10:56
2005.12.11
Откуда растут руки у русских программистов ?


14-1132521210
Fl@sh
2005-11-21 00:13
2005.12.11
Выбор видеокарты


14-1132669311
XsID
2005-11-22 17:21
2005.12.11
Немного об английском


2-1133069841
Separator
2005-11-27 08:37
2005.12.11
Проблема с move


3-1130055239
ViktorZ
2005-10-23 12:13
2005.12.11
Ошибки не выдает ,но и не делает того, что надо