![]() |
OnExit bei Fenster übers X schließen
Hallo,
im OnExit wird bei mir der Inhalt des Edits gespeichert. Leider bekomme ich kein OnExit, wenn das Fenster über das rote X geschlossen wird. Und nun ??? Weiss jemand, wie ich dem Edit das OnExit unterschieben kann? Danke |
AW: OnExit bei Fenster übers X schließen
"OnClose" könnte dein Freund sein.
|
AW: OnExit bei Fenster übers X schließen
Wenn es nur darum geht das Edit immer zu speichern wenn das "X" geklickt wird, dann mach das doch über das OnClose des Formulars...
|
AW: OnExit bei Fenster übers X schließen
Hallo,
hm, dann etwas genauer. ich habe mehrere Edits auf dem Form. Bei jedem OnExit wird der Inhalt des geänderten Edits gespeichert, also nicht erst beim Beenden des Forms. Nur das letzte Edit kann nicht gespeichert werden, weil es sein OnExit nicht bekommt beim Klick auf das X. |
AW: OnExit bei Fenster übers X schließen
und das OnClose hilft dir dabei! Denn du kannst ja ansonsten 1. Dir Merken in welchem Edit du zuletzt bist, also im OnEnter von dem Edit dir eine Variable mit dieser Komponente speichern, oder 2. Speicherst du einfach alle Edits noch einmal wenn du auf das "X" klickst.
|
AW: OnExit bei Fenster übers X schließen
Du musst im OnClose nicht mal alle Edit-Daten speichern.
Es gibt das ActiveControl. Das kannst du abfragen und dann nur dessen Daten speichern. Setzt natürlich voraus, dass das ActiveControl auch ein TEdit ist. Das solltest du also vorher prüfen. |
AW: OnExit bei Fenster übers X schließen
Stimmt... daran hab ich gerade nicht gedacht... So ganz im Sinne von "Warum einfach, wenn es auch kompliziert geht"! ich sollte mir, glaube ich, echt mal abgewöhnen immer so kompliziert zu denken.
|
AW: OnExit bei Fenster übers X schließen
Andere Lösung:
Delphi-Quellcode:
...
protected procedure WMNCLButtonDown(var Message: TWMNCLButtonDown); message WM_NCLBUTTONDOWN; end; ... implementation {$R *.dfm} procedure TForm1.WMNCLButtonDown(var Message: TWMNCLButtonDown); begin if (Message.HitTest = HTCAPTION) then self.WindowState:= wsMinimized; if (Message.HitTest = HTCLOSE) then Begin //mach hier, was zu tun ist................. Application.Terminate; End; if (Message.HitTest = HTHELP) then begin ShowMessage('hello world'); message.Result := 0; end else inherited; end; |
AW: OnExit bei Fenster übers X schließen
Hallo,
erledigt !!!
Delphi-Quellcode:
procedure TForm98.Edit1Exit(Sender: TObject);
begin MessageBox(0, 'Edit1Exit', '', 0); end; procedure TForm98.Edit2Exit(Sender: TObject); begin MessageBox(0, 'Edit2Exit', '', 0); end; procedure TForm98.FormClose(Sender: TObject; var Action: TCloseAction); begin PostMessage(ActiveControl.Handle, CM_EXIT, 0, 0); end; |
AW: OnExit bei Fenster übers X schließen
ActiveControl auf Nil setzen, müsste auch gehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:39 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