Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form2.Show in TForm1.FormCreate (https://www.delphipraxis.net/116084-form2-show-tform1-formcreate.html)

Brakeman 23. Jun 2008 10:05


Form2.Show in TForm1.FormCreate
 
Hallo,
ich möchte direkt beim Start meines Programmes die Form2 (befindet sich in Unit2) erscheinen lassen. Leider funktioniert das nicht, es kommt eine Zugriffsverletzung:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form2.ShowModal;
end;
Mache ich das ganze über einen eigenen Button.Click dann funktioniert es.

Was mache ich denn da falsch?

Danke!

DeddyH 23. Jun 2008 10:07

Re: Form2.Show in TForm1.FormCreate
 
In der *.dpr wird Form2 erst nach Form1 erzeugt, daher hast Du noch gar keine Instanz, die Du anzeigen könntest. Versuch es mal so:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form2 := TForm2.Create(Application);
  try
    Form2.ShowModal;
  finally
    Form2.Release;
  end;
end;

OldGrumpy 23. Jun 2008 10:13

Re: Form2.Show in TForm1.FormCreate
 
Zitat:

Zitat von DeddyH
In der *.dpr wird Form2 erst nach Form1 erzeugt, daher hast Du noch gar keine Instanz, die Du anzeigen könntest. Versuch es mal so:[...]

Dann *MUSS* aber die entsprechende Zeile aus dem *.dpr raus, sonst hat man zwei Instanzen von Form2 im Speicher liegen. Das kann neben Speicherlecks auch noch zu seltsamen Effekten führen, wenn z.B. das Form Hooks anlegt oder Messages registriert.

DeddyH 23. Jun 2008 10:15

Re: Form2.Show in TForm1.FormCreate
 
Stimmt, das vergaß ich zu erwähnen. Kann man ja in den Projektoptionen einstellen.

[edit] Ein "p" vergessen :mrgreen: [/edit]

OldGrumpy 23. Jun 2008 10:38

Re: Form2.Show in TForm1.FormCreate
 
Seitdem ich letztens mal "auf wundersame Art und Weise" im dpr zweimal die Create-Zeile für ein und dasselbe Form drin hatte und eine Dreiviertelstunde alles mögliche debugged habe, warum meine Events nicht mehr tun, kontrolliere ich das lieber nochmals selber :)

Brakeman 23. Jun 2008 10:51

Re: Form2.Show in TForm1.FormCreate
 
So habe ich es eingebaut und die Zeile in der Projektdatei entfernt. Funktioniert super!

Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 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-2025 by Thomas Breitkreuz