Einzelnen Beitrag anzeigen

Benutzerbild von lume96
lume96

Registriert seit: 14. Sep 2003
Ort: Rognac/Marseille - Frankreich
128 Beiträge
 
Delphi 7 Professional
 
#19

Re: TForm1.FormCreate -> Form2.Show;

  Alt 13. Aug 2004, 14:48
Hi,

Zitat von StanY:
Aber wie mache ich es, dass die anderen Formen/Forms auch erstellt werden, wenn ich frmMain erstelle, also, das Programm starte?

Einafch nur in Form2.FormCrate das reinschreiben geht nämlich net :/.
Zwei Möglichkeiten :
1) über das Menü Projekt/Optionen (frei aus dem Französischen übersetzt, hab keine deutsche Delphi-Version)

2) Manuell in der Projektdatei : (anzeigen durch Menü Projekt/Source anzeigen (wieder frei aus dem Französischen)). Die Projektdatei könnte dann wie folgt aussehen :

Delphi-Quellcode:
program test;

uses
  Forms,
  main in 'main.pas{Form1},
  Unit2 in 'Unit2.pas{Form2};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
Wie man sehen kann, werden zuerst die Forms erstellt, dann Application.Run aufgerufen.

Der Form.Show event des MainForms wird erst nach Application.Run aufgerufen, und zu dem Zeitpunkt ist Form2 schon erstellt.

Somit sollte bei einem :
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin

   Form2.Show;

end;
auch keine AccessViolation mehr auftreten. Die tritt nämlich 'nur' auf, wenn Du Form2.Show aufrufst, bevor der Form2 estellt wurde.

Hab das bei mir (Delphi 7 Pro) noch mal kurz getestet und es funktioniert einwandfrei.

MfG,
Lutz
Lutz Meyer
  Mit Zitat antworten Zitat