Вниз
Скачать: CL | DM;

ActionList и кнопки   Найти похожие ветки 

← →
irq   (2003-07-02 12:18) [0]

Здравстуйте! На несколько кнопок "навешан" один и тот же Action из ActionList"а. Можно ли как-нибудь определить какая именно кнопка была нажата? Спасибо


← →
Darrin ©   (2003-07-02 12:23) [1]

в обработчик передается параметр Sender, его и анализируй


← →
Skier ©   (2003-07-02 12:27) [2]

>Darrin © (02.07.03 12:23)
Вряд ли Sender здесь поможет.


← →
Семен Сорокин ©   (2003-07-02 12:32) [3]

м.б. Tag поможет


← →
Darrin ©   (2003-07-02 12:34) [4]

>Skier © (02.07.03 12:27)
у сендера есть свойство Tag, которое очень удобно использовать


← →
Skier ©   (2003-07-02 12:36) [5]

>Darrin © (02.07.03 12:34)
Но в Tag надо что-то занести ? Не так ли ?


← →
Darrin ©   (2003-07-02 12:37) [6]

конечно!!!! Какойнить уникальный эдентификатор кнопки (типа Integer)


← →
Skier ©   (2003-07-02 12:39) [7]

>Darrin © (02.07.03 12:37)
Но мне-то кажется, что автор хочет получить доступ к кнопкам
без лишних усилий, ведь все action-ы провешены в design-time...


← →
Darrin ©   (2003-07-02 12:45) [8]

А design-time нельзя так же проставить Tag"и?


← →
Skier ©   (2003-07-02 12:47) [9]

>Darrin © (02.07.03 12:45)
Можно. А дальше что ? Подумай спокойно что сие даст...


← →
Darrin ©   (2003-07-02 12:54) [10]

if sender as TButton then
begin
if (sender as TButton).Tag=1 then
begin
{


← →
Skier ©   (2003-07-02 12:57) [11]

>Darrin © (02.07.03 12:54)
А ты настойчивый.:)
Ну...сделай так что ли ShowMessage(Sender.ClassName) для
событий TContainedAction


← →
Семен Сорокин ©   (2003-07-02 13:00) [12]

Darrin © (02.07.03 12:54)
бред, во первых не if sender as TButton then а if sender is TButton then
во вторых Sender"ом будет TAction


← →
Darrin ©   (2003-07-02 13:00) [13]

И спокоен как танк. :) Только вот чего мы спорим, я уже давно не понимаю. Ж:-)


← →
Skier ©   (2003-07-02 13:02) [14]

>Darrin © (02.07.03 13:00)

> Только вот чего мы спорим, я уже давно не понимаю. Ж:-)

см. Skier © (02.07.03 12:27)


← →
Darrin ©   (2003-07-02 13:03) [15]

"as" "is" сори опечатался, а вот на счет "Sender"ом будет TAction" об этом я подул плох


← →
Семен Сорокин ©   (2003-07-02 13:05) [16]

Skier © (02.07.03 13:02)
на самом деле можно :))
назначить Tag"и у Action"ов такие-же как и у Button"ов, а потом просто пробегать по контролам и искать нужный баттон :)


← →
Darrin ©   (2003-07-02 13:05) [17]

хорошо берем глобальну переменную, и изврвщаемся с теми же самыми тагами


← →
Skier ©   (2003-07-02 13:06) [18]

>Семен Сорокин © (02.07.03 13:05)
У нескольких кнопок может быть одно Action


← →
Семен Сорокин ©   (2003-07-02 14:00) [19]

Skier © (02.07.03 13:06)
неужто ты пытаешься доказать, что никак в этом случае нельзя достучаться до кнопки, неверю :))


← →
Skier ©   (2003-07-02 14:05) [20]


> неужто ты пытаешься доказать, что никак в этом случае нельзя
> достучаться до кнопки,

Не пытаюсь.


← →
irq   (2003-07-02 15:22) [21]

Спасибо за то, что обсудили проблему. Решение уже найдено.
procedure TForm1.actOpenExecute(Sender: TObject);
begin
if (Form1.ActiveControl <> nil) then
begin
if (Form1.ActiveControl.ClassName = "TDBGrid") then
OpenRecordForm(osOpen, (Form1.ActiveControl as TDBGrid).Tag)
else
if (Form1.ActiveControl.ClassName = "TBitBtn") then
OpenRecordForm(osOpen, (Form1.ActiveControl as TBitBtn).Tag);
end;
end;



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

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



Память: 0.49 MB
Время: 0.012 c
14-44908
Шишкин Илья
2003-06-28 21:42
2003.07.14
Подскажите почтовую службу


3-44594
Валентина_
2003-06-21 09:41
2003.07.14
Немецкий в Delphi


1-44647
glow
2003-07-02 11:38
2003.07.14
Иконки


1-44717
BillyJeans
2003-06-23 11:47
2003.07.14
Как нажатием на кнопку прервать программный цикл?


1-44744
Pentium 5
2003-07-01 12:51
2003.07.14
TExcelApplication, завершение процесса EXCEL.EXE




   Наверх