Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

Есть форма F1 на которой есть CheсkBox1и F2 на которой есть   Найти похожие ветки 

 
Garry_c   (2005-01-21 12:36) [0]

CheсkBox2. Обработчики событий onclick у этих CheckBox-ов одинаковые. Не хочется иметь два одинаковых участка кода.
Как вариант, можно, конечно, написать отдельно третью процедуру и ее вызывать из обеих обработчиков. Но может быть есть способ как из тела обработчика F1.CheсkBox1.OnClick вызвать процедуру
F2.CheсkBox2.OnClick пробовал напрямую, но не пойму что писать вместо TObject в параметрах процедуры.


 
GuAV ©   (2005-01-21 13:18) [1]

Можно назначить обработчик другой формы во время выполнения F1.CheсkBox1.OnClick := F2.CheсkBox2.OnClick;


> Но может быть есть способ как из тела обработчика
>F1.CheсkBox1.OnClick вызвать процедуру
> F2.CheсkBox2.OnClick пробовал напрямую, но не пойму
> что писать вместо TObject в параметрах процедуры.


Можно и напрямую вызвать. Sender - это объект, вызвавший обработчик события, т.е. CheсkBox2, он же Sender в вызывающем обработчики. Если sender не используется можно передать что угодно, хоть nil.

Перед вызовом обработчика следует поверять назначен ли он if Assigned(F2.CheсkBox2.OnClick).

И ещё - не используется ли Self (явно или неявно) ? Дело в том что в обработчике F1.CheсkBox1.OnClick Self будет равен F1, даже если он вызван из F2.

Вообще такую задачу я бы решил или дублированием кода, или вынесением кода обоих обработчиков в отдельную процедуру или, если формы во многом похожи, наследованием.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.033 c
14-1105658183
Чеширский_Кот
2005-01-14 02:16
2005.02.06
что такое Cameo?


1-1106619202
jcrush
2005-01-25 05:13
2005.02.06
из числового значения получить цвет


1-1106296299
sardox
2005-01-21 11:31
2005.02.06
Пролистать memo


1-1106656658
Leon1
2005-01-25 15:37
2005.02.06
Паненель с иконками окошек?


1-1106288759
Mishenka
2005-01-21 09:25
2005.02.06
Как перерисовать MainMenu?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский