![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработчик событий [D5, Win95/98, WinME]
DJ_Sedoy © (2002-12-28 00:28:00)Создаю форму и кнопку на ней:
MyForm:=TForm.Create(self);
MyForm.Parent:=Form1; //Но в идеале без этого, не буду привязывать
MyButton:=TButton.Create(self);
MyButton.Parent:=MyForm;
MyButton.Show;
MyForm.ShowModal;
Вопрос: как бы мне корректно сделать обработчик события onClick на эту кнопку ? Чтобы в нём (пусть будет MyProcedure) присвоить MyForm.NodalResult:=mrOK; В HELP сказано, что TNotify: procedure (...) of object
Если ставить
MyButton.onClick:=MyProcedure(sender: TObject); //Например....
то несовместимость типов...
DJ_Sedoy (2002-12-28 17:39:00) [1]Да-да.. Я понял, верю - сам стормозил. Потому и подписал потом для последователей, не очень внимательных :) Типа меня.
Просто с созданием объектов в RunTime первый раз стлкнулся, да и собственные классы никогда не делал.
Еще раз пасиб!
Ещё (2002-12-28 03:38:00) [2]раз обрати внимание на свои же слова:
"В HELP сказано, что TNotify: procedure (...) of object"!
Ещё раз: Любыеобработчики событий должны быть методами класса!
DJ_Sedoy (2002-12-28 02:19:00) [3]Точно. Пасибо.
Только работает вот так:
Procedure TForm1.MyProc(Sender:TОБЖЕК);
begin
try (MyButton.Parent as TForm).ModalResult := mrOk; except end;
end;
MyБАТОН.OnCLICK := MyProc;
ну или там TMyClass, если кто-то хочет вынести куда-то, чтоб не мешалось.
(Это для таких, типа меня, кому пригодится)
VID (2002-12-28 02:02:00) [4]Procedure MyProc(Sender:TОБЖЕК);
begin
try (MyButton.Parent as TForm).ModalResult := mrOk; except end;
end;
MyБАТОН.OnCLICK := MyProc;