![]() |
Resource not found bei neuer Klasse
Hallo,
Mal wieder eine Anfängerfrage von mir, nur über die Hilfe und google hab ich nichts brauchbares gefunden :(. Wenn ich folgende Klasse durch Button7.Click erstellen möchte, erhalte ich jedesmal die Fehlermeldung "...Resource PmWindow not found..."; Der Fehler kommt während der Laufzeit, also kompilieren ist kein Problem.
Delphi-Quellcode:
type
PmWindow = class(TForm) SendPm: TButton; procedure CreateWindow2(Sender: TObject); end; TForm1 = class(TForm) ... var Form1: TForm1; PmWin: PmWindow;
Delphi-Quellcode:
Kann ich die einfach so auf form1 erstellen ?. Was mache ich hier falsch ?
procedure TForm1.Button7Click(Sender: TObject);
begin PmWin := PmWindow.Create(form1); PmWin.ShowModal; end; ~stift |
Re: Resource not found bei neuer Klasse
Hast du auch die Resourcen deiner Forum eingebunden?
Delphi-Quellcode:
bindet ja eine Fensterresource [unitname].dfm in die Unit ein.
{$R *.dfm}
Diese Resource-Datei enthält aber nur eine Resource für ein Forumular (bei dir vermutlich die von TForm1, da diese wohl auch von Delphi automatisch angelegt wurde) Wenn du jetzt ein weiteres Forumular einfügen willst, dann mußt du natürlich für dieses Formular auch die zugehörige Resource einbeinden z.B.: (oder wie du diese Datei denn bei dir so genannt hast)
Delphi-Quellcode:
In dieser Datei ist dann der Aufbau deines Formulars enthalten (so wie man ihn z.B. im Formulardesigner festgelegt hat)
{$R PmWindow.dfm}
Allerdings hast du nun 2 Formulare in einer Unit, welches zwar funktioniert, aber hier hat dann der Formulardesigner einige Problemchen. Besser wird es sein, wenn du dein Formular also in eine eigenständige Unit auslagerst. |
Re: Resource not found bei neuer Klasse
Vielen Dank.
Muss es denn eine dfm datei sein, die den Style/Aufbau festlegt. Ist es nicht auch möglich den Style der Form direkt im Quelltext festzulegen ?. ~stift |
Re: Resource not found bei neuer Klasse
Ja, wenn du aif diese Weise über die VCL eine Form erstellen willst, dann ist dieses unbedingt nutendig.
Delphi-Quellcode:
dieser Code stellt in diesem Famm nur eine Schnittstelle zu dem über .Create+LoadFromResource erstellen Formular zur Verfügung.
type
PmWindow = class(TForm) SendPm: TButton; procedure CreateWindow2(Sender: TObject); end; In der Resource steht halt der Aufbau drinnen. Wenn du ein Formular unbedingt auf diese Weise erstellen willst, dann wirst du wohl oder übel den Constructor von TForm/TCustomForm überschreiben müssen, denn darin wir die Resource geladen, welche du ja nicht hast, bzw. haben willst. Und dann wirst du natürlich dein Edit auch noch selber erstellen und der "Variable" SendPm zuweisen müssen. |
Re: Resource not found bei neuer Klasse
Hi,
oder einfach statt Create CreateNew verwenden:
Delphi-Quellcode:
[EDIT]Und wie ja bereits angedroht, alle Controls selbst im Code erzeugen...[/EDIT]
PmWin := PmWindow.CreateNew(form1);
Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 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