![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызвать событие наследника из родителя?
Ezorcist © (2007-03-01 15:35:00)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure myonp;
private
{ Private declarations }
public
{ Public declarations }
end;
Tparentclass = class (TObject)
public
procedure myproc;
end;
TonP = procedure of object;
TDClass = class (Tparentclass)
public
fonp:TonP;
property onp:TonP read fonp write fonp;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Tparentclass.myproc;
begin
//Êàê îòñþäà âûçâàòü fonp ?
end;
procedure TForm1.myonp;
begin
showmessage('Ok!');
end;
var m:TDClass;
procedure TForm1.Button1Click(Sender: TObject);
begin
m:=TDClass.Create;
m.onp:=myonp;
end;
end.
Плохиш (2007-03-01 17:45:00) [1]
> Ezorcist (01.03.07 15:46) [3]
Если я такое увижу в коде и руки можно будет дотянуть до аФФтара, то порву этого аФФтара на мелкие части :@
Не может и не должен знать предок о том какие свойства/методы могут появиться у потомка.
Аноним (2007-03-01 17:17:00) [2]Задача стандартная, решается виртуальностью метода
Ezorcist (2007-03-01 15:46:00) [3]2 Плохиш
Спасибо :))
Плохиш (2007-03-01 15:39:00) [4]В общем случае для статических методов - никак. В данном контексте приведением типа
TDClass(self).fonp;
Сергей М. (2007-03-01 15:37:00) [5]И ?