Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler im FormCreate (https://www.delphipraxis.net/82257-fehler-im-formcreate.html)

MarvinM 9. Dez 2006 16:25


Fehler im FormCreate
 
Hallo zusammen!

Ich habe ein Problem beim Öffnen eines anderen Formulars:

Wenn ich mit diesem Code ein Formular aufrufe (das hier heißt Neutral)

Delphi-Quellcode:
procedure THaupt.Datei_NeutralClick(Sender: TObject);
begin
  TNeutral.Create(haupt);
end;
und dann den FormCreate ausführe

Delphi-Quellcode:
procedure TNeutral.FormCreate(Sender: TObject);
begin
  Zeichne := TZeichnen.Create;

  FehlerLabel.Caption := '';
  Zeichne.Enable(false);
end;
dann funktioniert die erste Anweisung (also das FehlerLabel.Caption := '';) einwandfrei, aber wenn ich nun Zeichne.Enable aufrufe, wird dies ausgeführt:

Delphi-Quellcode:
procedure TZeichnen.Enable(Direction: Boolean);
begin
  with Neutral do
  begin
    EDecAnzAtomMitOH.Enabled := direction;
    EDecAnzOH.Enabled := direction;
    [und noch mehr davon]
  end;
end;
Der Fehler (eine EAccessViolation) tritt in der ersten Zeile auf (also EDecAnzAtomMitOH.Enabled := direction;)
Wenn ich mir nun den Debugger zu Neutral ansehe steht da nil.

Wenn ich nun das Formular direkt unter Projekt|Optionen|Formulare beim Start erzeigen lasse, kommt keine Fehlermeldung.

Die Unit (uFrontEndNeutral), in der TZeichnen deklariert ist, ist unter interface eingetragen.
Und in uFrontEndNeutral ist die uNeutral unter impletmentation eingetragen.


Danke schonmal für eure Antworten!

mkinzler 9. Dez 2006 16:28

Re: Fehler im FormCreate
 
Meine Antwort beliebt die Selbe:

Ersetze

Zitat:

Delphi-Quellcode:
TNeutral.Create(haupt);

durch
Delphi-Quellcode:
Neutral := TNeutral.Create(Self);

MarvinM 9. Dez 2006 16:33

Re: Fehler im FormCreate
 
Leider bleibt aber auch durch diese Methode Neutral nil...

mkinzler 9. Dez 2006 16:36

Re: Fehler im FormCreate
 
Wo hast du Neutral deklariert?

MarvinM 9. Dez 2006 16:39

Re: Fehler im FormCreate
 
Also in der uNeutral hier:

Delphi-Quellcode:
type
  TNeutral = class(TForm)
    [...]
  private
    { Private-Deklarationen }
  public
    WebAnzeige: TStringList;
  end;

var
  Neutral: TNeutral;

Und in der anderen Unit (die in der TZeichnen deklariert ist) hier:

Delphi-Quellcode:
implementation

uses
  uNeutral;
Also nicht direkt deklariert...

//EDIT:

Unt in der Unit von der aus das Formular aufgerufen wird (uHaupt) hier:

Delphi-Quellcode:
interface

uses
  uNeutral;

mkinzler 9. Dez 2006 16:42

Re: Fehler im FormCreate
 
Dann sollte es eigentlich gehen.
Hat du WebAnzeige im Konstruktor von TNeutral erzeugt?

MarvinM 9. Dez 2006 16:44

Re: Fehler im FormCreate
 
TNeutral hat bei mir keinen Konstruktor - daher nein.

mkinzler 9. Dez 2006 16:45

Re: Fehler im FormCreate
 
Dann erstelle einen.

MarvinM 9. Dez 2006 16:50

Re: Fehler im FormCreate
 
Ähm... wie müsst der aussehen :oops: ?

mkinzler 9. Dez 2006 17:11

Re: Fehler im FormCreate
 
Delphi-Quellcode:
type
  TNeutral = class(TForm)
    [...]
  private
    { Private-Deklarationen }
  public
   WebAnzeige: TStrings;
   constructor Create( AOwner: TObject);
  end;

...
   constructor TNeutral.Create(AOwner self);
   begin
       inherited Create( AOwner);
       WebAnzeige := TStringList.Create;  
   end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Seite 1 von 5  1 23     Letzte »    

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