Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ко такое? Вопрос покажется странным, но не знаю, как назначить пр [D7, WinXP]


Antoxa2005 ©   (2007-01-09 03:37:00) 

Подскадите пожалуйста, как назначить процедуру программно, т.е.:

есть процедура

procedure MessageShow;
Begin
ShowMessage('Выполнено');
end;

и есть кнопка Button1, как программно назначить на Button1.OnClick выполнение процедуры MessageShow?


Antoxa2005   (2007-01-09 10:51:00) [1]

Всем спасибо!


Германн   (2007-01-09 05:39:00) [2]


> Palladin ©   (09.01.07 04:18) [6]
>
> "ничего" "переместить" "никуда" я не могу и даже ЮЗ не может
> :)
> а вот от прав на начинающим я бы не отказался... спам исчезал
> бы активней...

Про ЮЗ не будем трепаться! Не тот уровень, согласись. А вот насчёт спама, тут не мешало бы что-то сделать дополнительно. Что именно я не знаю.


Джо   (2007-01-09 05:38:00) [3]

>
> а вот от прав на начинающим я бы не отказался... спам исчезал
> бы активней...

Сообразим на двоих? ;)


Palladin   (2007-01-09 04:18:00) [4]

"ничего" "переместить" "никуда" я не могу и даже ЮЗ не может :)
а вот от прав на начинающим я бы не отказался... спам исчезал бы активней...


Германн   (2007-01-09 04:09:00) [5]


> Palladin ©   (09.01.07 03:48) [4]
>
> Клянусь, я не намеренно :) просто написал ответ, перенес
> из основной и запостил :)
>

Ну да, мы ведь простые смертные и не можем "ничего" "переместить" "никуда"! :)


Palladin   (2007-01-09 03:48:00) [6]

Клянусь, я не намеренно :) просто написал ответ, перенес из основной и запостил :)


Джо   (2007-01-09 03:45:00) [7]

> [2] Джо ©   (09.01.07 03:44)
> следующее: Button1.OnClick := TSomeObject.MessageShow.

Button1.OnClick := SomeObject.MessageShow.

И опять меня Палладин опередил :)


Джо   (2007-01-09 03:44:00) [8]

Процедура MessageShow должна, во-первых, быть методом объекта, а, во-вторых, иметь соответствующий список формальных параметров, т.е., (Sender: TObject). Тогда программно можно будет написать следующее: Button1.OnClick := TSomeObject.MessageShow.


Palladin   (2007-01-09 03:43:00) [9]

Как ты мог заметить если бы исследовал справку на предмет TButton.OnClickэто свойство имеет тип TNotifyEvent, который в свою очередь является
procedure (Sender:TObject) of Object;

что в свою очередь означает, что назначаемое должно являтся методом объекта и выглядеть как:

Procedure <SomeObject>.MyClickEvent(Sender:TObject);

вот когда ты в каком нибудь классе объявишь подобное, потом еще и реализуешь, то что бы осуществить твою мечту тебе останется лишь присвоить событие

Button1.OnClick:=<SomeObject>.MyClickEvent;

а потом кликать до потери пулься и наслаждаться результатом


Наверх

Титульная страница Поиск, карта сайта Написать письмо