Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
1-36764
Алексей Глеб
2003-12-01 19:13
2003.12.12
Текущий видеорежим


3-36532
pashtet
2003-11-21 11:55
2003.12.12
QuickReport


3-36512
Урмат
2003-11-20 12:26
2003.12.12
кодировка dbf ADO


14-36822
РВА
2003-11-19 14:54
2003.12.12
Регистрация библиотеки типов


7-36856
cezar
2003-10-07 20:02
2003.12.12
Часовые пояса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский