![]() |
Problem mit Formaufruf
Hallo zusammen,
habe folgendes Problem: Ich habe einen Formaufruf der wie folg aussieht:
Delphi-Quellcode:
bei diesem Aufruf wird das Ereignisse FormShow 3 x Aufgerufen...
FoMain := TFoMain.Create(self);
FoMain.FormStyle := fsNormal; FoMain.Visible := False; FoMain.ShowModal; Kann mir jemand sagen warum? Vielen Dank! Eppos |
DP-Maintenance
Dieses Thema wurde von "alzaimar" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Forms gehören in die VCL-Sparte |
Re: Problem mit Formaufruf
Hallo,
mal ins Dunkle getippt:
Delphi-Quellcode:
Alternativ:
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.
Delphi-Quellcode:
Jedes mal ändert sich die Sichtbarkeit.
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. 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. |
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? |
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:... |
Re: Problem mit Formaufruf
Ich habe mehrere SQL's die dort aufgerufen werden...
|
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:
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
FoMain.FormStyle := fsNormal;
FoMain.Visible := False;
Delphi-Quellcode:
reichen.
FoMain := TFoMain.Create(self);
FoMain.ShowModal; |
Re: Problem mit Formaufruf
Die Form hat folgende Eigenschaften:
Delphi-Quellcode:
und für einen anderen brauche ich eben den Aufruf wie oben beschrieben.
FoMain.FormStyle := fsMDIChild;
FoMain.Visible := False; |
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. |
Re: Problem mit Formaufruf
sorry habe mich verschrieben, es müsste
Delphi-Quellcode:
sein
FoMain.Visible := True;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:56 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