Delphi-PRAXiS

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/)
-   -   Edit-Exit vor Buttonklick auswerten? (https://www.delphipraxis.net/205088-edit-exit-vor-buttonklick-auswerten.html)

Getox 30. Jul 2020 12:16

Edit-Exit vor Buttonklick auswerten?
 
Hallo,

ich habe ein TDBEdit. Dieses aktualisiert den Wert im DataSet wenn man es verlässt. Ich habe allerdings einen Button, dessen Funktionalität darauf angewiesen ist, dass der Wert im Dataset bereits aktualisiert wurde. Wenn ich aber den Fokus noch im Edit habe und dann auf den Button klicke, wird erst der Buttonklick (mit dem falschen Wert im DataSet) ausgeführt und erst im Anschluss wird das Verlassen des Edits bearbeitet.

Gibt es eine einfache Möglichkeit das umzudrehen?

Danke und liebe Grüße

alex517 30. Jul 2020 12:40

AW: Edit-Exit vor Buttonklick auswerten?
 
evt.damit

Delphi-Quellcode:

procedure TMyForm.BtnClick(Sender: TObject);
begin

  ActiveControl.Perform(CM_EXIT, 0, 0);

...

Getox 30. Jul 2020 13:13

AW: Edit-Exit vor Buttonklick auswerten?
 
Vielen Dank. Es funktioniert.

Rolf Frei 30. Jul 2020 14:21

AW: Edit-Exit vor Buttonklick auswerten?
 
Hast du einen Button ohne Focus? Der normale TButton löst das Exit auf dem Edit aus, bevor das Clickevent des Buttons ausgelöst wird, weil zuert der Focus auf den Button wandert und ein Exit beim Edit auslöst.

Nutzt du einen anderen Button, der kein Focus hat, kannst du im Click den Focus irgendwo anderst hinbewegen oder machst es so wie alex517 es geschrieben hat.

Nicht getestet, aber ich glaube mit Dataset.UpdateRecord kannst du das auch machen und das wäre erst noch die schönste Lösung. Rufe dazu in deinem Clickevent einfach diese Methode auf.

himitsu 30. Jul 2020 14:57

AW: Edit-Exit vor Buttonklick auswerten?
 
ToolButtons bekommen keinen Fokus.

Besonders ist nett, dass in den DBNavigatoren ToolButtons drin sind
und auch der [x] der Form nimmt keinen Fokus.

Also beim Speichern und Schließen der Form wird vorher das aktive Edit eventuell nicht richtig gespeichert.
Ganz besonders unpraktisch bei DevExpress, wenn man dort ImmediatePost nicht aktiv hat, also wo im DBEdit nicht bei jedem Tastendruck/OnChange sofort der Wert ans Field/DataSet übergeben wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 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