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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-62831
Nimda
2002-12-26 07:53
2003.01.20
Matrix


4-62927
Kolja
2002-12-04 23:42
2003.01.20
Излагаю задачу посылки сообщения в Edit чуж. пр-мы!!!


14-62732
Cobalt
2002-12-23 23:51
2003.01.20
Об удалении


14-62840
Seriy
2003-01-03 08:20
2003.01.20
Удаление всех файлов из каталога кроме одного, например index.dat


14-62739
Anatoly Podgoretsky
2003-01-04 10:24
2003.01.20
Именинники 4 января





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