Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

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

 
Ag2002   (2003-01-09 18:54) [0]

Подскажите пожалуйста,
я создал ActionList в нём создал оброботчик оди и привезал его к двум кнопкам и я пытаюсь сделать так чтобы по нажатию на одну из них происходило немного другое действие чем при другом, в обработчике написал следующие:

if (Sender is TButton) then
if (Sender as TButton).Name = "Button4" then;

Но почему-то когда я нажимаю на кнопку этот код не срабатывает получается что Sender is НЕТTButton ?
почему ????


 
Переяслов Григорий ©   (2003-01-09 19:00) [1]

А Sender-то форма


 
Ag2002   (2003-01-09 19:11) [2]

ПОчему ?


 
z1288 ©   (2003-01-09 19:29) [3]

Ну незнаю, в том куске кода, что привел Ag2002 все прекрасно работает (только что проверил), может быть ошибка где-то еще???


 
Vcoder ©   (2003-01-09 21:19) [4]


> Переяслов Григорий © (09.01.03 19:00)
> А Sender-то форма


Была аналогичная проблема. Выяснял подробности - Sender действительно форма.
Пришлось извращаться: кнопку, по которой вызван метод, определял через Self.ActiveControl
Пожалуйста объясните, почему Sender форма и как сделать, чтобы это была Button?


 
TTCustomDelphiMaster ©   (2003-01-09 21:45) [5]

function TCustomActionList.ExecuteAction(Action: TBasicAction): Boolean;
begin
Result := False;
if Assigned(FOnExecute) then FOnExecute( Action, Result);
end;

Или так

procedure TForm1.Action1Execute(Sender: TObject);
begin
ShowMessage(TControl(Sender).Name);
end;


 
TTCustomDelphiMaster ©   (2003-01-09 22:01) [6]


> function TCustomActionList.ExecuteAction(Action: TBasicAction):
> Boolean;
> begin
> Result := False;
> if Assigned(FOnExecute) then FOnExecute(Action, Result);
> end;


Извеняюсь не из той оперы

function TBasicAction.Execute: Boolean;
begin
if Assigned(FOnExecute) then
begin
FOnExecute(Self); // Передает в обработчик Self - то есть себя TBasicAction, а не кнопку.
Result := True;
end
else Result := False;
end;


 
Immortal ©   (2003-01-10 10:31) [7]

Можно сделать так:


// Условие выполняемое при нажатии Button1:
if TButton(Sender).Name = "Button1" then
Begin
[Ваш код программы]
end;

// Условие выполняемое при нажатии Button2:
if TButton(Sender).Name = "Button2" then
Begin
[Ваш код программы]
end;

// и т.д.




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

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-62600
vlad40
2003-01-09 10:03
2003.01.20
Как программно установить фонт в Windows 98/XP


8-62663
ych_boriss
2002-10-03 03:42
2003.01.20
шрифты


14-62839
ZG
2003-01-03 02:49
2003.01.20
хочу под локальную сеть чего-нибудь написать, но не знаю с чего


1-62583
Johnny
2003-01-08 22:55
2003.01.20
текст Item из List box=edit.text : как сделать?


7-62858
sural
2002-11-02 08:41
2003.01.20
Как точно узнать размер памяти на видеокарте?