Главная страница
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.012 c
3-36560
Mila
2003-11-12 11:36
2003.12.12
есть:БД в Clipper(dBase)


1-36604
Relaxxx
2003-12-01 15:32
2003.12.12
Есть ли сочетание букв в слове???


1-36704
GreySerg
2003-12-02 15:34
2003.12.12
Как сделать hint в закладке (TTabSheet ) , когда наводишь курсор


1-36714
bss
2003-12-02 14:31
2003.12.12
Открыть файл в приложении, которому он соотвествует


1-36640
Viper-Omsk
2003-11-22 17:51
2003.12.12
Перемещение файла