Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Fehlermeldung beim Starten des Projects


.gaLLardo - Mi 21.03.07 19:18
Titel: Fehlermeldung beim Starten des Projects
Hallo,

bei mir tritt folgender Fehler beim Starten des Projects aus Delphi auf.
Zitat:
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00438142 in Modul 'Project1.exe'. Lesen von Adresse 000002CC'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.


Hier der Hinweis von Delphi was ich falsch gemacht habe.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {formmenu},
  Unit2 in 'Unit2.pas' {formfra},
  Unit3 in 'Unit3.pas' {formextras},
  Unit4 in 'Unit4.pas' {formhilfe};
begin
  Application.Initialize;
  Application.CreateForm(Tformmenu, formmenu);
  Application.CreateForm(Tformfra, formfra);
  Application.CreateForm(Tformextras, formextras);
  Application.CreateForm(Tformhilfe, formhilfe);
  Application.Run;
end.

Zeile 11 wird markiert.


ssb-blume - Mi 21.03.07 19:27

Ohne Kenntnis der Units 1.. und deren evtl. Querverweise kann man den Fehler nicht finden.
Beim Erzeugen der Form müssen alle darin vereinbarten anderen Forms definiert sein!


.gaLLardo - Mi 21.03.07 23:38

Ich habe das bisher noch sehr lausige Programm hochgeladen.
Moderiert von user profile iconChristian S.: Download im Anhang

Ich wollte noch nicht weiterarbeiten, da ich den Fehler erst beheben wollte.

Grus


Ralf Jansen - Mi 21.03.07 23:59

Du greifst einfach von einer Form auf die globale Formvariable einer anderen Form zu ohne zu prüfen ob diese Form schon erzeugt wurde. Knallt natürlich fürchterlich.

Wenn du das so beibehalten möchtest verschiebe den Code von FormCreate nach FormShow und ändere Visible der eigene Form nicht nur das der anderen 3 Formen(wofür soll das Ganze eigentlich gut sein?). Und wenn du schon auf die globalen Formvariablen zugreifst teste zumindest mit der assigned Funktion ob die schon zugewiesen sind.

Hab nicht viel Code gesehen, aber du brauchst dringend ein ordentliches Delphi Buch.

Ralf