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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
3-36576
AV
2003-11-20 13:51
2003.12.12
Размер .NTX созданных под Delphi, отличается от CLIPPERовских.


1-36727
Tetragrammaton
2003-12-02 12:03
2003.12.12
Перерисовка окна


3-36564
Russko
2003-11-20 14:07
2003.12.12
ORDER BY


14-36802
Мазут Береговой
2003-11-18 20:07
2003.12.12
Что такое старость? Какие критерии по самооценке


1-36706
Dysan
2003-12-02 14:43
2003.12.12
Tchart