![]() |
TForm kann nicht übergeben werden!!!!
Hi!!!
Ich habe ein dringendes Problem :-) Also folgendes. Ich habe 3 Prozeduren, die wie folgt aussehen:
Delphi-Quellcode:
procedure Tconfig_form.Button1Click;
begin with TForm_1.Create(nil) do begin Showmodal; end; end;
Delphi-Quellcode:
procedure Tconfig_form.Button2Click;
begin with TForm_2.Create(nil) do begin Showmodal; end; end;
Delphi-Quellcode:
Ist ja alles das selbe, was liegt also nahe? Ich kam auf die Idee die methode (hoff mal das ist das richtige Wort :mrgreen: ) rauszuholen...
procedure Tconfig_form.Button3Click;
begin with TForm_3.Create(nil) do begin Showmodal; end; end; Sieht jetzt so aus:
Delphi-Quellcode:
Aufrufen müsste ich das ganze jetzt so
procedure Tconfig_form.CreateShowmodalForm(ShowForm: TForm);
begin with ShowForm.Create(nil) do begin Showmodal; end; end;
Delphi-Quellcode:
Beim Komilieren kommt folgender Fehler:
CreateShowmodalForm(TForm_1);
Zitat:
Delphi-Quellcode:
Hab also das T vor der Form weggelassen... aber jetzt kommt ne Fehlermeldung beim ausführen!
CreateShowmodalForm(Form_1);
Zitat:
Liebe Weihnachtsgrüße Martin W. !!! |
Re: TForm kann nicht übergeben werden!!!!
Hm das ist klar...
Du darfst Deiner Methode auch nicht einen Typ von TForm übergeben sondern definier dir einen Typ wie TFormClass = class of TForm und verwende diesen. Beispiel:
Delphi-Quellcode:
... type TFormClass = class of TForm; procedure Tconfig_form.CreateShowmodalForm(ShowForm: TFormClass); begin with ShowForm.Create(nil) do begin Showmodal; end; end; |
Re: TForm kann nicht übergeben werden!!!!
Danke dir !!!!
|
Re: TForm kann nicht übergeben werden!!!!
Das deklarieren des Types muss eigentlich nicht sein oder? Delphi kennt ja schon TFormClass.
Delphi-Quellcode:
procedure ShowModalForm(aNewFormClass: TFormClass);
var NewForm: TForm; begin NewForm := aNewFormClass.Create(nil); try NewForm.ShowModal; finally NewForm.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowModalForm(TForm2); end; procedure TForm1.Button2Click(Sender: TObject); begin ShowModalForm(TForm3); end; |
Re: TForm kann nicht übergeben werden!!!!
Oh ... dann wäre es sicher besser TFormClass zu verwenden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz