![]() |
Delphi-Version: 5
Problem mit FormCreate
Hallo zusammen,
ich habe schon wieder ein Problem, was ich bislang noch nicht lösen konnte.:( Ich möchte zum Start des Programmes eine Typisierte Datei laden, der Quellcode dazu steht bei mir im FormCreate- Ereignis des Hauptformulars(ist das richtig, oder sollte man lieber den Code woanders hin schreiben?). Ich weiß nicht wieso, aber seitdem ich den Code zum laden dort hineingeschrieben habe stürzt mir das Programm beim Start bei einer ganz bestimmten Speicheradresse ab. Zuerst dachte ich, das läge am Quellcode des Ladens der Datei, aber wenn ich diesen auskommentiere, stürzt das Programm trotzdem ab. Ich habe mir das ganze mal mit dem Debugger angeschaut, die Prozedur läuft ganz normal durch, so wie es sein soll, nur wenn er schließlich zu
Code:
kommt, stürzt es ab.
Application.CreateForm(THauptfenster, Hauptfenster);
Delphi-Quellcode:
Ich habe auch schon versucht, die ganze Prozedur auszukommentieren, hilft ebenfalls nichts. Auch der Compiler gibt keine Fehlermeldungen aus.
procedure THauptfenster.FormCreate(sender: TObject);
begin //hier der Code zum Laden der Datei end; Ich hoffe ihr könnt mir dabei weiterhelfen! |
AW: Problem mit FormCreate
Benutzt du im FormCreate schon die Variable
Delphi-Quellcode:
?
Hauptfenster
Diese Variable ist zu dem Zeitpunkt noch nicht gesetzt. Auch darum sollte niemals innerhalb der Form-Methoden mit dieser globalen Variablen gearbeitet werden. Wenn man das wirklich möchte, dann nimmt man
Delphi-Quellcode:
!
Self
|
AW: Problem mit FormCreate
Ich lese gerade, dass du D5 einsetzt.
Wenn du im Form.Create schon auf Komponenten der Form zugreifst, kann das durchaus zu dem beschriebenen Verhalten führen. in späteren Versionen wurde an der Stelle wohl etwas geändert. In D2005 hatte ich das nämlich mal versehentlich auch wieder so gemacht und es kam nicht zum Fehler. Ich habe mir dann angewöhnt, solche Aktionen ins FormActivate zu verlagern. |
AW: Problem mit FormCreate
Nein, innerhalb der Methode verwende ich nicht diese Variable. Das merkwürdige ist ja auch, dass selbst wenn die Methode leer ist (ich den Quelltext also auskommentiert habe) der Fehler trotzdem auftritt.
@Jasocul, nein ich verwende nicht Delphi 5. Wie in meinem Profil zu lesen, verwende ich Lazarus/Freepascal. |
AW: Problem mit FormCreate
Zitat:
Einfach F9 und dann warten bis es knallt geht ja nunmal nicht immer. Vorallem wenn der komplette Stack zerschossen und die aktuelle Codeposition voll im Arsch sind, und keine Exceptionblöcke drumrum sind, dann kann der Debugger halt nicht mehr rausbekommen wo sich das Program im Quellcode befindet und der Stacktrace ist auch nicht möglich. Mit F7 und F8 Stück für Stück an die Fehlerstelle ranarbeiten, selber (erfolgreiche) Haltepunkte setzen, damit man im nächsten Durchlauf gleich bis da hin springen kann. Und falls im FreePascal auch mit RTL/VCL-Quellcodes gedebugt werden kann, dann hilft das hier bestimmt weiter, vorallem da ha scheinbar kaum noch Code von dir übrig ist, wenn du schon alles auskommentiert hast. |
AW: Problem mit FormCreate
Hallo,
ich habe den Fehler jetzt gefunden, das Problem war das OnCreate- Ereigniss einer anderen Form. Da hatte ich genau den Fehler gemacht, wie Rufo schon gesagt hat, die Variable von der Form zu verwenden. Ich habe einfach den Fehler in der falschen Unit vermutet...:oops: Trotzdem vielen Dank für die Hilfe!:thumb: |
AW: Problem mit FormCreate
Ich hoff du behebst den Fehler auch an allen anderen Stellen.
Innerhalb der eigenen Form-Instanz verwendet man niemals diese Variable. Immerhin ist man eh schon in der Instanz und braucht das sowieso nicht nochmal von einer unsicheren externen Quelle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 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 by Thomas Breitkreuz