Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Внизодин обработкик события для разных компонентов Найти похожие ветки
← →
Marina_S (2003-11-30 19:32) [0]Помогите, пожалуйста, написать один обработкик события Onclick для разных компонентов. Как и где его объявить и как прописать?
← →
dataMaster (2003-11-30 19:35) [1]В инспекторе объектов на вкладке Events
← →
Stilgar (2003-11-30 19:36) [2]Объявляешь для одного, как обычно. Потом переходишь на вкладку Events другого нужного компонента и в выпадающем списке напротив OnClick выбираешь название только что созданной процедуры.
← →
Marina_S (2003-11-30 19:52) [3]Дело в том, что объекты, для которых нужно прописать события в инспекторе не указаны. Они создаются в процессе выполнения программы и обрабатываться должны одинаково. Как для них написать один обработчик события (без инспектора объектов)?
← →
Stilgar (2003-11-30 19:57) [4]Свойству OnClick каждого из них нужно присвоить заранее созданный метод с одним параметром - TObject.
← →
dataMaster (2003-11-30 20:02) [5]Взял из готового проекта, ненужное убрал. Думаю, все должно быть ясно:
private
procedure ColorBoxChange(Sender: TObject);
implementation
{$R *.dfm}
procedure TcbForm.ColorBoxChange(Sender: TObject);
begin
// обработчик для всех ColorBox"ов
end;
for k:=1 to 10 do
ColorBox[k]:=TColorBox.Create(Panel1);
with ColorBox[k] do
OnChange:=ColorBoxChange; // обработчик OnChange
← →
Marina_S (2003-11-30 20:49) [6]Большое спасибо! Только я не знаю как дальше мне изменить свойства объекта, у которого произошло событие. Обратиться напрямую Sender.Brush... и т.д. компилятор не разрешает :(
← →
Stilgar (2003-11-30 21:11) [7]Приведение типов называется.
Допустим это Canvas.
1)TCanvas(Sender).Brush
2)(Sender as TCanvas).Brush
3)with Sender as TCanvas do Brush
И лучше всего:
if Sender is TCanvas then
with sender as TCanvas
begin
end;
P.S. Предлагаю добавить в FAQ.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c