Главная страница
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.018 c
14-36799
Mihey
2003-11-20 20:26
2003.12.12
Нужна помощь по MS Word.


7-36871
Serge
2003-09-29 21:49
2003.12.12
Перехват чтения/записи файла


1-36711
smat
2003-12-02 15:30
2003.12.12
TRichEdit и Clipboard


1-36626
BDRON
2003-11-30 00:10
2003.12.12
Memo независимый от размера шрифта


7-36876
COSINUS
2003-10-07 19:04
2003.12.12
Пример использования COMport