Hi,
ich habe ein Projekt noch im Delphi 7.
Hab da ein paar Änderungen gemacht, nichts wildes. Das letzt, davor lief es noch, war ein Menuitem auf visible:=True umgestellt.
Danach trat im OnFormShow EAccessViolation auf beim Zugriff auf ein Label in einer anderen Form.
Ich hab mal im Debugger die
dpr durchgesteppt, und unmittelbar nach dem CreateForm arbeitet er die OnFormShow der Mainform ab.
Delphi-Quellcode:
begin
frm_splash:=Tfrm_splash.Create(
nil);
frm_splash.Show;
Application.ProcessMessages;
dm1:=Tdm1.Create(
nil);
frm_dbausw:=Tfrm_dbausw.Create(
nil);
Application.Initialize;
Application.Title := '
Tagesplaner V4.1 SQL';
Application.CreateForm(Tfrm_main, frm_main);
Application.CreateForm(Tfrm_ersatzwagenuebersicht, frm_ersatzwagenuebersicht);
Application.CreateForm(Tfrm_rufnummernsuche, frm_rufnummernsuche);
.
.
//Hier werden noch weitere Formen erzeugt
.
Application.Run;
end.
Müsste nicht das OnFormShow frühesten nach dem Application.Run ausgeführt werden?
Aber wenn ich in der ersten Zeile im OnShow der frm_main einen Haltepunkt setze, hält er dort unmittelbar noch dem CreateForm(Tfrm_main, frm_main).
Die Event OnFormShow und OnFormCreate sind im
OI richtig zugewiesen.
In den Projekt-Optionen ist eingestellt, dass alle Formen automatisch erzeugt werden sollen und die frm_main auch als Mainform ausgewählt.
Kann man irgendwo versehendlich einen Haken setzen, dass nur die Mainform erzeugt wird? Oder woran könnte das liegen?
Hi,
What have you done !!!!!????
This is the most crazy thing i saw in very long time, calling Application.ProcessMessages before Application.Run is ..... WOW! or really! or what the.... out of words
Your application literally has undefined structure now, with undefined behavior,
VCL library logic is out of the window too, calling ProcessMessages before Applicaiton.Run is no no, also never a form from its constructor should call it too.