Текущий архив: 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.45 MB
Время: 0.044 c