Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   OnExit bei Fenster übers X schließen (https://www.delphipraxis.net/189679-onexit-bei-fenster-uebers-x-schliessen.html)

hoika 8. Jul 2016 12:41

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

mm1256 8. Jul 2016 12:43

AW: OnExit bei Fenster übers X schließen
 
"OnClose" könnte dein Freund sein.

Devil1925 8. Jul 2016 12:44

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...

hoika 8. Jul 2016 12:51

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.

Devil1925 8. Jul 2016 13:02

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.

Jasocul 8. Jul 2016 13:17

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.

Devil1925 8. Jul 2016 13:38

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.

t.roller 8. Jul 2016 13:53

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;

hoika 8. Jul 2016 13:55

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;

baumina 11. Jul 2016 09:02

AW: OnExit bei Fenster übers X schließen
 
ActiveControl auf Nil setzen, müsste auch gehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 Uhr.

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