In meiner Komponente will ich einen Fensterklasse vom Type TForm,
TFormClass speichern. Ich speichere nicht nur den ClassNamen sondern das TFormClass.
CoseAuszug:
TLinkedForm = class(TCollectionItem)
private
FFormName : string;
FClassName : string;
FFormCaption : string;
FFormClass : TFormClass;
FForm : TForm;
protected
function GetDisplayName: string; override;
public
constructor Create(ACollection: TCollection); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
published
property FormName : string read FFormName write FFormName;
property FormClassName : string read FClassName write FClassName;
property FormCaption : string read FFormCaption write FFormCaption;
property Form : TForm read FForm write FForm;
Property FromClass : TFormClass read FFormClass write FFormClass;
end;
Nun möchte ich Später auf das Formular wieder zugreifen, sprich es bei Bedarf erstellen usw.
procedure TCiooFormManager.LoadForm(AFormName:string);
var
AForm : TForm;
AFormClass : TFormClass;
AFormIndex : Integer;
begin
Try
AFormIndex := GetFormIndex(AFormName);
if CheckFormular(Forms.Items[AFormIndex].FClassName) =-1 then
begin
AForm := Forms.Items[AFormIndex].FForm;
AFormClass := TFormClass(FindClass(Forms.Items[AFormIndex].FClassName));
if Assigned(AFormClass) then AForm:=AFormClass.Create(Self);
AForm.Show;
end;
finally
Screen.Cursor := ACursor;
end;
end;
In der späteren Anwendung kann nur auf das Formular zugegriffen werden, wenn es entweder unter Projektobtionen in
Automatisch erzeugen eingetragen ist oder aber es über RegisterClass registriet wird.
Da ich ich aber die FormClass als TFormClass speichere müsste man doch so drauf zugreifen können oder wie kann man das Objekt der Klassen TForm (TFormClass) im in einer Komponente verarbeiten.
Ich wollte eigentlich auf RegistClass verzichten
TFormClass speichern. Ich speichere nicht nur den ClassNamen sondern das TFormClass.
CoseAuszug:
TLinkedForm = class(TCollectionItem)
private
FFormName : string;
FClassName : string;
FFormCaption : string;
FFormClass : TFormClass;
FForm : TForm;
protected
function GetDisplayName: string; override;
public
constructor Create(ACollection: TCollection); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
published
property FormName : string read FFormName write FFormName;
property FormClassName : string read FClassName write FClassName;
property FormCaption : string read FFormCaption write FFormCaption;
property Form : TForm read FForm write FForm;
Property FromClass : TFormClass read FFormClass write FFormClass;
end;
Nun möchte ich Später auf das Formular wieder zugreifen, sprich es bei Bedarf erstellen usw.
procedure TCiooFormManager.LoadForm(AFormName:string);
var
AForm : TForm;
AFormClass : TFormClass;
AFormIndex : Integer;
begin
Try
AFormIndex := GetFormIndex(AFormName);
if CheckFormular(Forms.Items[AFormIndex].FClassName) =-1 then
begin
AForm := Forms.Items[AFormIndex].FForm;
AFormClass := TFormClass(FindClass(Forms.Items[AFormIndex].FClassName));
if Assigned(AFormClass) then AForm:=AFormClass.Create(Self);
AForm.Show;
end;
finally
Screen.Cursor := ACursor;
end;
end;
In der späteren Anwendung kann nur auf das Formular zugegriffen werden, wenn es entweder unter Projektobtionen in
Automatisch erzeugen eingetragen ist oder aber es über RegisterClass registriet wird.
Da ich ich aber die FormClass als TFormClass speichere müsste man doch so drauf zugreifen können oder wie kann man das Objekt der Klassen TForm (TFormClass) im in einer Komponente verarbeiten.
Ich wollte eigentlich auf RegistClass verzichten
Comment