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/)
-   -   Delphi OnExit - "Ziel" feststellen (https://www.delphipraxis.net/66447-onexit-ziel-feststellen.html)

Der Jan 29. Mär 2006 19:59


OnExit - "Ziel" feststellen
 
Hallo mal wieder,

ich habe da ein etwas verzwicktes Problem:

In einem Formular habe ich ein Edit-Feld. In selbiges wird eine Auftragsnummer (Name: edtNr)eingegeben bzw. von einem Barcode-Scanner eingelesen. Beim OnExit-Ereignis des edtNr werden ein paar Datenbank-Abfragen ausgeführt, um nachfolgende Controls mit entsprechenden Werten zu füllen. Normalerweise erfolgt das Verlassen des edtNr durch die Enter-Taste, wodurch man zum nächsten Control kommt. Soweit alles voller gut :) Jetzt gibt es aber zwei Buttons auf dem Form, einen zum Löschen der Controls und einen zum Schließen. Wenn man diese klickt, wird logischerweise auch das OnExit-Events von edtNr, falls es gerade aktiv ist, ausgelöst. Ich möchte dies entweder verhindern (wird wohl nicht gehen) oder feststellen, wodurch das Verlassen von edtNr ausgelöst wurde, um entsprechend zu reagieren.
Ich könnte natürlich einen Button neben (oder in) edtNr setzen, den man klicken muß, um die entsprechenden Aktionen zu starten, aber dies würde die Bedienung umständlicher machen und die einfache und schnelle Bedienung möglichst ohne Maus ist eine der Hauptanforderungen in diesem speziellen Fall.
Vielleicht (sicherlich) gibt es ja auch noch eine einfachere Lösung...

Hawkeye219 29. Mär 2006 21:11

Re: OnExit - "Ziel" feststellen
 
Hallo Jan,

warum prüfst Du nicht im OnKeyPress- bzw. OnKeyDown-Ereignis des Edit-Felds, ob die Return-Taste gedrückt wurde?
Falls ja, dann führe die Datenbank-Abfrage durch.

Gruß Hawkeye

Lannes 29. Mär 2006 23:25

Re: OnExit - "Ziel" feststellen
 
Hallo,

damit kannst Du feststellen durch welchen Button das OnExit eines Edits ausgelöst wird, da ActiveControl Dir das Control angibt, das den Focus bekommen wird.
Delphi-Quellcode:
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  showmessage(ActiveControl.Name);
end;

Der Jan 30. Mär 2006 07:35

Re: OnExit - "Ziel" feststellen
 
@Hawkeye: Das mache ich ja und in diesem Fall, also der "normalen" Bedienung gibt es ja auch keine Probleme, sondern nur, wenn dann z.B. die Buttons anklickt.

@Lannes: Das ist interessant, ich wußte gar nicht, daß ActiveControl zu diesem Zeitpunkt schon gesetzt ist. Wenn dem so ist, hilft mir das auf jeden Fall weiter. Ich werde das mal testen.

Der Jan 30. Mär 2006 08:23

Re: OnExit - "Ziel" feststellen
 
@Lannes: Genauso funktioniert es.

Danke für den Tips!


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