Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Problem mit Formaufruf (https://www.delphipraxis.net/127221-problem-mit-formaufruf.html)

Eppos 9. Jan 2009 11:22


Problem mit Formaufruf
 
Hallo zusammen,

habe folgendes Problem:

Ich habe einen Formaufruf der wie folg aussieht:

Delphi-Quellcode:
  FoMain := TFoMain.Create(self);
  FoMain.FormStyle := fsNormal;
  FoMain.Visible := False;
  FoMain.ShowModal;
bei diesem Aufruf wird das Ereignisse FormShow 3 x Aufgerufen...

Kann mir jemand sagen warum?

Vielen Dank!

Eppos

DP-Maintenance 9. Jan 2009 12:37

DP-Maintenance
 
Dieses Thema wurde von "alzaimar" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Forms gehören in die VCL-Sparte

nahpets 9. Jan 2009 12:46

Re: Problem mit Formaufruf
 
Hallo,

mal ins Dunkle getippt:
Delphi-Quellcode:
FoMain := TFoMain.Create(self);
FoMain.FormStyle := fsNormal; // weils noch nicht sichtbar ist, nur erstellt <> sichtbar?
FoMain.Visible := False; // weils unsichtbar gemacht wird.
FoMain.ShowModal; // weils angezeigt wird.
Alternativ:
Delphi-Quellcode:
FoMain := TFoMain.Create(self); // macht auch sichtbar (abhängig von den Defaultwerten für FormStyle, Visible...
// Eventuell hat ja auch ein OnCreate-Ereignis noch irgendwelche Auswirkungen.
FoMain.FormStyle := fsNormal; // weil seine Darstellungsform geändert wird.
FoMain.Visible := False;
FoMain.ShowModal; // weils angezeigt wird.
Jedes mal ändert sich die Sichtbarkeit.
Mach mal ShowMessages dazwischen und schau, in welcher Reihenfolge Deine Befehle und die Aufrufe von FormShow erfolgen oder schau's Dir mit dem Debugger an, dann müsstest Du erkennen können, welcher Deiner Befehle ein FormShow verursacht.

Eppos 9. Jan 2009 13:04

Re: Problem mit Formaufruf
 
@nahpets

Habe ich gemacht.
Es wird jedemal angezeigt bei:
1. --> FoMain.FormStyle := fsNormal;
2. --> FoMain.Visible := False;
3. --> FoMain.ShowModal;

Die Eigenschaft kann ich nicht ändern, da das fenster von einem andren Fesnter verwendet wird und andere Eigeschaften für dieses Fenster benötigt werden.
Ein OnCreate Ereignis hängt nicht dazwischen...

Aber was kann ich dagegen tun?

sakura 9. Jan 2009 13:08

Re: Problem mit Formaufruf
 
Eigentlich nichts, FormShow kann sehr häufig aufgerufen werden. Was willst Du erreichen, evtl. gibt es eine bessere Lösung als FormShow zu nutzen.

...:cat:...

Eppos 9. Jan 2009 13:12

Re: Problem mit Formaufruf
 
Ich habe mehrere SQL's die dort aufgerufen werden...

nahpets 9. Jan 2009 13:27

Re: Problem mit Formaufruf
 
Hallo,

reicht denn dann nicht nach dem Create das FoMain.ShowModal aus?
Zu dem Formular gibt es doch auch die entsprechende DMF, wenn dort bzw. im Objektinspekter für das Formular
Delphi-Quellcode:
FoMain.FormStyle := fsNormal;
FoMain.Visible := False;
schon gesetzt sind, dann brauchst Du die im Quelltext doch nicht mehr, beim Create werden diese Werte ja bereits übernommen, dann müsste im Quelltext doch eigentlich
Delphi-Quellcode:
FoMain := TFoMain.Create(self);
FoMain.ShowModal;
reichen.

Eppos 9. Jan 2009 13:47

Re: Problem mit Formaufruf
 
Die Form hat folgende Eigenschaften:

Delphi-Quellcode:
FoMain.FormStyle := fsMDIChild;
FoMain.Visible := False;
und für einen anderen brauche ich eben den Aufruf wie oben beschrieben.

nahpets 9. Jan 2009 14:05

Re: Problem mit Formaufruf
 
Hallo,

das Visible := False brauchst Du also immer und es ist in den Defaulteinstellungen, dann kannst Du Dir ja das Setzen sparen und kommst somit einmal weniger durch FormShow, dass ist nur wohl nicht so ganz das, was Du möchtest.

Eppos 9. Jan 2009 14:13

Re: Problem mit Formaufruf
 
sorry habe mich verschrieben, es müsste
Delphi-Quellcode:
FoMain.Visible := True;
sein


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 Uhr.
Seite 1 von 2  1 2      

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