Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
Delphi 10 Seattle Enterprise
|
AW: Contructor des verbten Forms aufrufen
31. Jan 2013, 16:33
Ich bin jetzt ein Stück weiter gekommen. Zumindest wirds kompiliert.
Aber es gibt eine Exception beim erzeugen des Forms.
Wie mus ich das bitte formulieren?
Delphi-Quellcode:
{------------------------------------------------------------------------------------------------------------}
{}function TfrMain2.StartChildForm(FormClass: TFormClass; Berechtigt:TBerechtigung; Params:TObject=nil):TForm;
{------------------------------------------------------------------------------------------------------------}
{-----------------------------------------}
{}procedure CreateAForm( var Result: TForm);
{-----------------------------------------}
begin
if FormClass.InheritsFrom(TfrMaster) then
begin
result := TfrMaster(FormClass).Create(Application,Params); //hier gibt es eine exception
end else
if FormClass.InheritsFrom(TfrmBaseChild) then
begin
result := TfrmBaseChild(FormClass).Create(Application,Params);
end;
if (result<> nil) then
begin
AdvToolBar1.AddMDIChildMenu(result);
Inc(FChildCount);
result.OnClose := ChildFormClose;
AdvOfficeMDITabSet1.AddTab(result);
end;
end; {StartChildForm}
begin
CheckBerechtigtBis(Berechtigt);
result := nil;
if (GetKeyState(VK_LCONTROL)<0) then
begin
CreateAForm(Result);
end else
begin
result := BringChildFormToFront(copy(FormClass.ClassName,2,Length(FormClass.ClassName)),' ');
if (result = nil) then
begin
CreateAForm(Result);
end; {if}
end; {if}
end;
//Das MasterForm aus diesem alle andere Forms erben.
Delphi-Quellcode:
unit Master;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
type
TfrMaster = class(TForm)
private
{ Private-Deklarationen }
// FParams:TObject;
public
{ Public-Deklarationen }
Constructor Create(AOwner: TComponent; aParams:TObject); virtual;
end;
var
frMaster: TfrMaster;
implementation
{$R *.dfm}
{ TForm1 }
{ TfrMaster }
constructor TfrMaster.Create(AOwner: TComponent; aParams: TObject);
begin
end;
end.
//Das aktuelle ChildForm
Delphi-Quellcode:
unit Adressen;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Master;
type
TfrAdressen = class(TfrMaster)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
FParams:TObject;
Constructor Create(AOwner: TComponent; aParams:TObject); override;
end;
var
frAdressen: TfrAdressen;
implementation
{$R *.dfm}
constructor TfrAdressen.Create(AOwner: TComponent; aParams: TObject);
begin
inherited create(AOwner, aParams);
FParams := aParams;
end;
end.
|
|
Zitat
|