Delphi-Quellcode:
Proc = procedure;
TGenericList = class(TObjectList)
private
FType: TClass;
FAdd: Proc;
public
property AddObj: Proc read FAdd;
constructor Create(ObjType: TClass);
end;
TProcedures = class
published
procedure AddTLabel(ALabel: TLabel);
procedure AddTButton(AButton: TButton);
end;
procedure TProcedures.AddTLabel(ALabel: TLabel);
begin
ShowMessage('AddTLabel!');
end;
procedure TProcedures.AddTButton(AButton: TButton);
begin
ShowMessage('AddTButton!');
end;
constructor TGenericList.Create(ObjType: TClass);
begin
FType := ObjType;
FAdd := TProcedures.MethodAddress('Add' + ObjType.ClassName);
end;
Das geht soweit ja aber ich will halt wenn ich AddObj aufrufe die Parameter sehn die die Procedure hat und dann halt so das ich wenn ich
TGenericList.Create(TLabel) aufrufe auch nur Labels hinzufügen kann in meine liste...
also das dann wenn man AGenericList. schreibt das Menü aufploppt und man halt nur die Procedure AddObj(ALabel: TLabel) zur Auswahl hat.. wenn bei im OnCreate TButton angegeben hat dann halt AddObj(AButton: TButton)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."