Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zustand eines Buttons erkennen (https://www.delphipraxis.net/187007-zustand-eines-buttons-erkennen.html)

Luckner 20. Okt 2015 12:14

Zustand eines Buttons erkennen
 
Hallo,

folgendes Problem. Ich habe ein Editfeld und einen Abbruch-Button. Im Editfeld sollen und müssen nur Zahlen eingetragen werden. Diese Überprüfung habe ich realisiert im OnExit-Ereigniss und es funktioniert auch. Wenn ich jedoch auf den Abbruch-Button drücke, dann kommen entsprechende Fehlermeldung, weil das OnExit-Ereigniss natürlich aktiv wird. Wenn ich jedoch einen Klick-Zustand des Button auslesen könnte, dann würde ich mit einer Abfrage gleich rausspringen. Geht das? (Bestimmt, nur ich weiß nicht wie).

Gruß, Luckner

Sailor 20. Okt 2015 12:17

AW: Zustand eines Buttons erkennen
 
Im OnClick-Ereignis des Buttons ein Flag setzen, das den Abbruch signalisiert

Sir Rufo 20. Okt 2015 12:27

AW: Zustand eines Buttons erkennen
 
Zitat:

Zitat von Sailor (Beitrag 1319190)
Im OnClick-Ereignis des Buttons ein Flag setzen, das den Abbruch signalisiert

Was nichts bringt, denn erst kommt
Delphi-Quellcode:
TEdit.OnExit
,
Delphi-Quellcode:
TButton.OnEnter
und dann
Delphi-Quellcode:
TButton.OnClick
. Und hier ist bei
Delphi-Quellcode:
TEdit.OnExit
schon Schluss (so wird es jedenfalls beschrieben)

baumina 20. Okt 2015 12:29

AW: Zustand eines Buttons erkennen
 
Ein OnExit wird nur aufgerufen, wenn das Feld den Fokus verliert. Ein Buttonklick holt sich nicht immer den Fokus, deswegen wundert mich das beschriebene Verhalten. Vielleicht wäre es sinnvoller die Validierung zu einem anderen Zeitpunkt zu machen.

Sir Rufo 20. Okt 2015 12:31

AW: Zustand eines Buttons erkennen
 
Zitat:

Zitat von baumina (Beitrag 1319193)
Ein OnExit wird nur aufgerufen, wenn das Feld den Fokus verliert. Ein Buttonklick mit der Maus holt sich im Normalfall nicht den Fokus, deswegen wundert mich das beschriebene Verhalten. Vielleicht wäre es sinnvoller die Validierung zu einem anderen Zeitpunkt zu machen.

Das ist bei einem
Delphi-Quellcode:
TSpeedButton
richtig ... ein
Delphi-Quellcode:
TButton
bekommt aber den Fokus (vor dem Klick)

baumina 20. Okt 2015 12:34

AW: Zustand eines Buttons erkennen
 
Ist der Button z.B. Default, Cancel oder per Shortcut erreichbar und es wird die entsprechende Taste gedrückt, bekommt der Button keinen Fokus.

Sir Rufo 20. Okt 2015 12:38

AW: Zustand eines Buttons erkennen
 
Zitat:

Zitat von baumina (Beitrag 1319195)
Ist der Button z.B. Default, Cancel oder per Shortcut erreichbar und es wird die entsprechende Taste gedrückt, bekommt der Button keinen Fokus.

Der TE drückt aber keine Taste, sondern den Button ... und das geht nur mit der Maus, bzw. dieses angesprochene Problem bekommt er nur in der Kombination mit einem
Delphi-Quellcode:
TButton
und einem Mausklick.

Wäre es anders hätte er nicht gefragt, weil er kein Problem hätte ;)

baumina 20. Okt 2015 12:39

AW: Zustand eines Buttons erkennen
 
Ja vielleicht nicht verständlich genug ausgedrückt. Wichtig war mir zu sagen, dass das OnExit-Ereignis nicht zuverlässig genug für eine Validierung ist.

Sir Rufo 20. Okt 2015 12:43

AW: Zustand eines Buttons erkennen
 
Zitat:

Zitat von baumina (Beitrag 1319197)
Ja vielleicht nicht verständlich genug ausgedrückt. Wichtig war mir zu sagen, dass das OnExit-Ereignis nicht zuverlässig genug für eine Validierung ist.

Gegen die Validierung spricht nichts ... aber eben nur eine Validierung und eben kein zwanghaftes Festhalten an dem Control.

frankyboy1974 20. Okt 2015 12:48

AW: Zustand eines Buttons erkennen
 
hallo,

also ich würde damit leben können. Der Anwender gibt in ein Zahlenfeld einen String ein und drückt anschliessend auf Abbrechen. Das Feld sagt nun geben "Geben Sie bitte einen Zahlenwert ein". Auch wenn der Anwender sowieso den Vorgang abbrechen möchte, könnte ich damit leben, das der Anwender erstmal einen Zahlenwert eingeben muss.
Valiediere ich also direkt bei der Eingabe oder erst wenn alle Eingaben vom Anwender getätigt wurden sind, egal wie du das progammierst, am Ende steht einer und sagt, dass hätte ich aber anders programmiert.:?

mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:22 Uhr.
Seite 1 von 4  1 23     Letzte »    

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