![]() |
Delphi-Version: 2007
Klasse von TForm ableiten und Constructor um Parameter erweitern
Hallo,
ich versuche eine Klasse von TForm abzuleiten. Diese Klasse müsste aber beim Constructor aber mehr Parameter als AOwner haben, in diesem Fall Caption. Ich habe bis jetzt folgendes, was aber nicht funktioniert:
Delphi-Quellcode:
Beim inherited Create(AOwner) kommt die Fehlermeldung "Ressource TInfowindow wurde nicht gefunden"
unit InfoWindow;
interface uses Windows, Forms, Classes, Dialogs; type TInfoWindow = class(TForm) private FCaption: string; public constructor Create(AOwner: TComponent; Caption: string); reintroduce; overload; virtual; destructor Destroy; override; end; implementation constructor TInfoWindow.Create(AOwner: TComponent; Caption: string); begin inherited Create(AOwner); self.Caption := Caption; end; destructor TInfoWindow.Destroy; begin inherited Destroy; end; end. Kann mir einer weiterhelfen? Gruss Jonny |
AW: Klasse von TForm ableiten und Constructor um Parameter erweitern
Die VCL versucht für Alles, welches von TForm abgeleitet ist und was nicht selber TForm ist, die DFM-Resource zu laden.
Du wirst wohl keine solche Resource im Programm eingebunden haben und daher der Fehler. Irgendwo gibt es schon einige Threads dazu und da wurde auch erklärt, wie man dieses Verhalten abstellen kann, so daß keine DFM mehr versucht wird zu laden. Edit [add] Hier der Grund:
Delphi-Quellcode:
constructor TCustomForm.Create(AOwner: TComponent);
begin inherited Create(AOwner); ... InitializeNewForm; if (ClassType <> TForm) and not (csDesigning in ComponentState) then begin Include(FFormState, fsCreating); try if not InitInheritedComponent(Self, TForm) then raise EResNotFound.CreateFmt(SResNotFound, [ClassName]); |
AW: Klasse von TForm ableiten und Constructor um Parameter erweitern
Man kann aber gefahrlos einen 2. Konstruktor erzeugen, der weitere Parameter besitzt und der dann den Standardkonstruktor aufruft.
|
AW: Klasse von TForm ableiten und Constructor um Parameter erweitern
Zitat:
Es sei denn man schaltet dieses Verhalten ab oder man ruft den Standardkonstruktor nicht auf, aber Letzeres ist nicht zu empfehlen, da sonst viele und wichtige Initialisierungen des Formulars fehlen. PS: Das
Delphi-Quellcode:
ist wohl etwas unnütze/zuviel, dazumal die Form selber schon ein Caption (siehe Self.Caption) besitzt.
FCaption: string;
|
AW: Klasse von TForm ableiten und Constructor um Parameter erweitern
Also ist das so wie ich es mache vom Grundprinzig richtig und ich versuche jetzt das Laden
der DFM zu unterbinden? |
AW: Klasse von TForm ableiten und Constructor um Parameter erweitern
Warum das?
|
AW: Klasse von TForm ableiten und Constructor um Parameter erweitern
Das hatte ich jetzt so aus den Antworten geschlossen,
wenn es falsch ist korrigier mich bitte. |
AW: Klasse von TForm ableiten und Constructor um Parameter erweitern
Kannst Du nicht einfach das Formular ganz herkömmlich samt DFM anlegen, erweitern und dann der Objektablage hinzufügen? Oder hab ich mal wieder was falsch verstanden?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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