Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
14-36835
mfender
2003-11-19 16:09
2003.12.12
Забавное мнение...


14-36814
ИдиотЪ
2003-11-19 13:43
2003.12.12
А кто модерирует модераторов ?


7-36852
UserForever
2003-10-08 20:08
2003.12.12
Метка диска


3-36527
Disruptor
2003-11-21 10:12
2003.12.12
Как сделать, чтобы IB сама обрезала записи VARCHAR,


14-36821
man-1982
2003-11-20 19:50
2003.12.12
Где можно достать в электронном виде справочник по функциям




   Наверх