AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Resource not found bei neuer Klasse

Ein Thema von stiftII · begonnen am 11. Okt 2009 · letzter Beitrag vom 12. Okt 2009
Antwort Antwort
stiftII

Registriert seit: 2. Sep 2009
Ort: Cuxhaven
122 Beiträge
 
#1

Resource not found bei neuer Klasse

  Alt 11. Okt 2009, 17:59
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:
procedure TForm1.Button7Click(Sender: TObject);
begin
  PmWin := PmWindow.Create(form1);
  PmWin.ShowModal;
end;
Kann ich die einfach so auf form1 erstellen ?. Was mache ich hier falsch ?

~stift
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#2

Re: Resource not found bei neuer Klasse

  Alt 11. Okt 2009, 18:36
Hast du auch die Resourcen deiner Forum eingebunden?

{$R *.dfm} bindet ja eine Fensterresource [unitname].dfm in die Unit ein.

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)
{$R PmWindow.dfm} In dieser Datei ist dann der Aufbau deines Formulars enthalten (so wie man ihn z.B. im Formulardesigner festgelegt hat)

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
stiftII

Registriert seit: 2. Sep 2009
Ort: Cuxhaven
122 Beiträge
 
#3

Re: Resource not found bei neuer Klasse

  Alt 11. Okt 2009, 19:11
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#4

Re: Resource not found bei neuer Klasse

  Alt 11. Okt 2009, 19:49
Ja, wenn du aif diese Weise über die VCL eine Form erstellen willst, dann ist dieses unbedingt nutendig.


Delphi-Quellcode:
type

PmWindow = class(TForm)
  SendPm: TButton;
  procedure CreateWindow2(Sender: TObject);
  end;
dieser Code stellt in diesem Famm nur eine Schnittstelle zu dem über .Create+LoadFromResource erstellen Formular zur Verfügung.

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Resource not found bei neuer Klasse

  Alt 12. Okt 2009, 07:14
Hi,

oder einfach statt Create CreateNew verwenden:

PmWin := PmWindow.CreateNew(form1); [EDIT]Und wie ja bereits angedroht, alle Controls selbst im Code erzeugen...[/EDIT]
Frank
Frank Reim
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz