AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit FormCreate

Ein Thema von TForm1 · begonnen am 18. Jan 2014 · letzter Beitrag vom 18. Jan 2014
Antwort Antwort
TForm1

Registriert seit: 11. Jan 2014
128 Beiträge
 
FreePascal / Lazarus
 
#1

Problem mit FormCreate

  Alt 18. Jan 2014, 12:04
Delphi-Version: 5
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:
Application.CreateForm(THauptfenster, Hauptfenster);
kommt, stürzt es ab.

Delphi-Quellcode:
procedure THauptfenster.FormCreate(sender: TObject);
begin
//hier der Code zum Laden der Datei
end;
Ich habe auch schon versucht, die ganze Prozedur auszukommentieren, hilft ebenfalls nichts. Auch der Compiler gibt keine Fehlermeldungen aus.

Ich hoffe ihr könnt mir dabei weiterhelfen!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Problem mit FormCreate

  Alt 18. Jan 2014, 12:18
Benutzt du im FormCreate schon die Variable 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 Self !
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Problem mit FormCreate

  Alt 18. Jan 2014, 12:30
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.
Peter
  Mit Zitat antworten Zitat
TForm1

Registriert seit: 11. Jan 2014
128 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Problem mit FormCreate

  Alt 18. Jan 2014, 12:33
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Problem mit FormCreate

  Alt 18. Jan 2014, 13:44
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:
Application.CreateForm(THauptfenster, Hauptfenster);
kommt, stürzt es ab.
Und wie hast du den Debugger "benutzt"?
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TForm1

Registriert seit: 11. Jan 2014
128 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Problem mit FormCreate

  Alt 18. Jan 2014, 15:35
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...

Trotzdem vielen Dank für die Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Problem mit FormCreate

  Alt 18. Jan 2014, 16:42
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 06: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