Einzelnen Beitrag anzeigen

silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#1

[gelöst] TForm ableiten -> EResNotFound Exception

  Alt 22. Apr 2012, 11:02
Hallo zusammen,

sorry, dass ich Euch wegen so einem einfachen Problem stören muss, aber ich weiß nicht weiter.
Das kann damit zusammenhängen, dass ich seit gestern 20:00 Uhr ununterbrochen vor dem Bildschirm sitze (wenn einen der Programmiereifer packt ), aber (oder vielleicht gerade deswegen ) ich sehe zurzeit den Wald vor lauter Bäumen nicht mehr.

Problem:
Zwei Forms, die eine von TForm abgeleitet, die andere von der bereits abgeleiteten nochmals abgeleitet.

Die TBaseForm soll bereits alle Elemente enhalten, die davon abgeleitete Forms ebenfalls benötigen (in diesem Fall den Button btStart).

In den von TBaseForm abgeleiteten Klassen kommen neue Komponenten hinzu (in diesem Fall ein Button btEnd)

Delphi-Quellcode:
unit uProgramHandlerForms;

type TBaseForm = class(TForm)
  private
    btStart : TButton;
  public
    constructor Create; virtual;
end;

type TComplexForm =class(TBaseForm)
  private
    btEnd : TButton;
  public
    constructor Create; override;
end;

implementation


constructor TBaseForm.Create;
begin
  inherited Create(nil); //<-- hier bleibe ich immer mit der Exception (siehe unten) hängen
  btStart := TButton.Create(self);
  btStart.Parent := self;
  btStart.Top := 20;
  btStart.Left := 20;
  btStart.Visible := True;

  Height := 300;
  Width := 300;
  Caption := 'BaseForm';
  Visible := True;
end;


constructor TComplexForm.Create;
begin
  inherited Create;
  btEnd := TButton.Create(self);
  btEnd.Parent := self;
  btEnd.Top := 100;
  btEnd.Left := 20;
  btEnd.Visible := True;

  Caption := 'ComplexForm';
end;
MainUnit:

Delphi-Quellcode:
type
  TFrmMain = class(TForm)
    BtTest: TButton;
    procedure BtTestClick(Sender: TObject);
  private
    cf : TBaseForm;
  public
    { Public declarations }
  end;

[...]

procedure TFrmMain.BtTestClick(Sender: TObject);
begin
  cf := TComplexForm.Create;
end;
Wenn ich nun auf meiner Hauptform den Button btTest drücke, kommt die wunderhübsche Fehlermeldung
Zitat:
Project ProgramHandlerTest.exe raised exception class EResNotFound with message 'Resource TComplexForm not found'
Ich hoffe, dass jemand hier mal den Funken überspringen lassen könnte, der dann die Bäume abfackelt, sodass ich den Wald wieder sehen kann.
Tobias
Bitte nicht hauen , ich weiß es nicht besser

Geändert von silver-moon-2000 (22. Apr 2012 um 12:04 Uhr) Grund: Titel geändert -> [gelöst]
  Mit Zitat antworten Zitat