![]() |
Form mit neuem Konstruktor -> Warnung des Compilers
Hallo,
ich habe für eine Form einen Constructor hinzugefügt.
Delphi-Quellcode:
Jetzt kommt immer die Warnung: type TDocsChildForm = class(TForm) //... public { Public-Deklarationen } constructor create(sender:TComponent;QueryInfo:TQueryInfo); overload; //... // Konstruktor mit Query-Info-Übergabe // ---------------------------------------------------------------------------- constructor TDocsChildForm.create(sender: TComponent; QueryInfo: TQueryInfo); begin // Form erstellen inherited create(sender); // QueryInfo speicherm FQueryInfo:=QueryInfo; end; Zitat:
Gruß Andreas |
Re: Form mit neuem Konstruktor -> Warnung des Compilers
moin, nimm mal override anstelle von overload, vielleicht ist dann die Warnung weg.
|
Re: Form mit neuem Konstruktor -> Warnung des Compilers
Zitat:
|
Re: Form mit neuem Konstruktor -> Warnung des Compilers
Ergänz mal auch noch virtual.
Ich würde aber QueryInfo als Property implementieren um nicht dem Designkonzept der VCL entgegen zu arbeiten. |
Re: Form mit neuem Konstruktor -> Warnung des Compilers
hm, auf meinem Turbo-Delphi funktioniert es, und notfalls kann man auch noch "reintroduce" dahinter schreiben, das unterdrückt die Compiler-Warnung :???:
|
Re: Form mit neuem Konstruktor -> Warnung des Compilers
Hallo,
noch ne weitere Info: die Form ist ein MDIChild, deshalb wollte ich die erforderlichen Infos gleich beim Create mitgeben. Reintroduce möchte ich nicht verwenden, da dann ja der alte Konstruktor nicht mehr erreichbar ist Und Override geht tatsächlich nicht. Aber mit anderen Klassen funktioniert das mit dem Overdrive doch, oder? |
Re: Form mit neuem Konstruktor -> Warnung des Compilers
Zitat:
|
Re: Form mit neuem Konstruktor -> Warnung des Compilers
Ich würde hier an Deiner Stelle einfach die Möglichkeit nutzen, dass ein Object mehrere Constructors haben kann.
Machs z. B. so:
Delphi-Quellcode:
type
Tinfo = class end; TForm1 = class(TForm) private fInfo : TInfo; public constructor CreateInitialized (Owner : TComponent; info : TInfo); end; implementation constructor TForm1.CreateInitialized(Owner: TComponent; info: TInfo); begin Create (Owner); finfo := info; end; end. |
Re: Form mit neuem Konstruktor -> Warnung des Compilers
OK,
das werde ich wohl so machen. Allerdings habe ich das mit dem Erstellen von Funktionen/Prozeduren mit gleichem Namen und unterschiedlicher Signatur schon gemacht und habe keine Warnung bekommen. Dann ist das wohl bei Konstruktoren anders, oder? |
Re: Form mit neuem Konstruktor -> Warnung des Compilers
Nein. Aber vermutlich waren deine damaligen Methoden nicht virtuell...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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 by Thomas Breitkreuz