![]() |
WindowState ruft OnShow Ereignis auf?
Hallo,
ich habe folgenden Code, und dieser ruft automatisch das OnShow Ereignis des Forms auf. Ist das normal so? Für mich ist das aber voll ungünstig, kann ich das irgendwie umgehen, oder ist das eine schlechte Idee? Lässt sich vielleicht das Form anders kleiner machen, nicht so wie bei mir?
Delphi-Quellcode:
Danke!
procedure TMainForm.MinimizeMIClick(Sender: TObject);
begin // MainForm minimieren if MainForm.WindowState = wsMaximized then begin MainForm.BorderStyle := bsSizeable; MainForm.WindowState := wsNormal; MainForm.Width := 800; MainForm.Height := 600; end else begin MainForm.BorderStyle := bsNone; MainForm.WindowState := wsMaximized; end; end; |
AW: WindowState ruft OnShow Ereignis auf?
Muss es wohl zwangsweise, damit die neuen Eigenschaften wirksam werden. Warum ist es ungünstig für dich?
|
AW: WindowState ruft OnShow Ereignis auf?
Zitat:
|
AW: WindowState ruft OnShow Ereignis auf?
Es gibt noch andere Möglichkeiten die Titelleiste zu entfernen als bsNone.
|
AW: WindowState ruft OnShow Ereignis auf?
Zitat:
|
AW: WindowState ruft OnShow Ereignis auf?
Dann mach sie doch erst, wenn du sie neu lädst. Was meinst du eigentlich genau mit "neu laden"?
|
AW: WindowState ruft OnShow Ereignis auf?
Zitat:
|
AW: WindowState ruft OnShow Ereignis auf?
Zitat:
Im Oncreate werden alle benötigten Objekte erzeugt. Ebenfalls wird dort ein privater Boolean StartModus (Private-Abschnitt) auf True gesetzt. In OnShow und in OnActivate frage ich diesen Boolean ab:
Delphi-Quellcode:
Dasselbe in OnActivate. Dort wird dann, nachdem dort alles erledigt wurde, was zu erledigen ist, z.B. Verbindung mit der Datenbank herstellen usw., StartModus auf False gesetzt:
procedure TFormMain.Show(Sender: TObject);
begin if not StartModus then exit; MachSonstWas; DiesUndDas; ... end;
Delphi-Quellcode:
Somit mußt du nichts prüfen außer dem Boolean StartModus, der sonst nirgendwo verwendet wird.
procedure TFormMain.Activate(Sender: TObject);
begin if not StartModus then exit; if not DatMod.VerbindenDatenbank Then begin ShowMessage('Verbindung mit der Datenbank fehlgeschlagen. Programm wird beendet.'); Close; end; if not DatMod.VerbindenQueries Then begin ShowMessage('Verbindung mit der Queries fehlgeschlagen. Programm wird beendet.'); Close; end; BenutzerLogin; EinstellungenLaden; // dort wird u.a. auch WindowState gesetzt, die Werte für die Einstellungen kommen aus der DB ... StartModus := False; end; |
AW: WindowState ruft OnShow Ereignis auf?
Wow... super Lösung, danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 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