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

Вниз

Определение нажатой кнопки   Найти похожие ветки 

 
rra ©   (2006-07-13 14:55) [0]

Всем привет!
Есть две кнопки, выполняют по сути разные действия, но код отличается 3-мя строчками (так вот получается), а сама процедура порядка 50 строк.
Мои действия - создаю Action в ActionList и "завязываю" его с событием OnClick самих кнопок, но как определить какой именно кнопкой было вызвано Action?
Может можно как-то по другому реализовать сей алгоритм? Ну уж очень не хочется дублировать код, тем более, что таких пар кнопок 4шт.


 
Elen ©   (2006-07-13 15:04) [1]

На каждую кнопку посади одну и ту же процедуру OnClick и используй Sender . Он показывает какая кнопка нажата


 
Vlad ©   (2006-07-13 15:06) [2]

на событие Execute
if TAction(Sender).ActionComponent = Button1 then...


 
rra ©   (2006-07-13 15:07) [3]

Понял...спасибо


 
Loginov Dmitry ©   (2006-07-13 15:07) [4]

> "завязываю" его с событием OnClick самих кнопок, но как
> определить какой именно кнопкой было вызвано Action?

в событии OnExecute пишешь проверку:

if Sender is TButton then TButton(Sender).Caption := "Test!";


 
Vlad ©   (2006-07-13 15:10) [5]


> Loginov Dmitry ©   (13.07.06 15:07) [4]


> в событии OnExecute пишешь проверку:
>
> if Sender is TButton

Sender там TAction


 
Loginov Dmitry ©   (2006-07-13 15:15) [6]

> Sender там TAction


Никак до конца не пойму, как вся эта технология работает? Вроде при присваении Action кнопке, у нее появляется обработчик OnClick, указывающий на OnExecute, а Sender кнопки не передается. Хитро придумано, однако :)


 
Vlad ©   (2006-07-13 15:17) [7]


> Sender там TAction


Хотя сорри... автор на OnClick кнопки повесил OnExecute, тогда Sender будет кнопка (если свойство Action не заполнено)


 
Loginov Dmitry ©   (2006-07-13 15:21) [8]

> автор на OnClick кнопки повесил OnExecute, тогда Sender
> будет кнопка


OnExecute на OnClick  вешается автоматически, поэтому Sender скорее всего будет TAction.


 
rra ©   (2006-07-13 15:23) [9]

внесу ясность (или неясность:) - свойство Action заполнено, при этом в Execute вставил предложенную Vlad"om [2] конструкцию и все отрабатывает корректно...


 
Vlad ©   (2006-07-13 15:26) [10]


> Loginov Dmitry ©   (13.07.06 15:21) [8]
> > автор на OnClick кнопки повесил OnExecute, тогда Sender
>
> > будет кнопка
>
>
> OnExecute на OnClick  вешается автоматически, поэтому Sender
> скорее всего будет TAction.

Это понятно, я имел ввиду если св-во Action не заполнять, а просто на OnClick повесить OnExecute Action-a, тогда Sender будет 100% кнопка.
(а в изначальном вопросе неясно, толи он Action прицепил, толи нет)


> rra ©   (13.07.06 15:23) [9]

теперь ясно



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

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

Наверх





Память: 0.46 MB
Время: 0.02 c
15-1151738519
Новичоккк
2006-07-01 11:21
2006.07.30
Уже вторые сутки не могу прочитать байты из буфера


4-1144999322
SP_MX
2006-04-14 11:22
2006.07.30
Клавиатурный HOOK


4-1144770818
sally
2006-04-11 19:53
2006.07.30
Получить список файлов для NTFS раздела


1-1150780080
denmin
2006-06-20 09:08
2006.07.30
Не могу округлить значение поля в EXCEL.


3-1148770554
Кашперук Иван
2006-05-28 02:55
2006.07.30
BDE Administrator и PARADOX





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