![]() |
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 |
AW: Zustand eines Buttons erkennen
Im OnClick-Ereignis des Buttons ein Flag setzen, das den Abbruch signalisiert
|
AW: Zustand eines Buttons erkennen
Zitat:
Delphi-Quellcode:
,
TEdit.OnExit
Delphi-Quellcode:
und dann
TButton.OnEnter
Delphi-Quellcode:
. Und hier ist bei
TButton.OnClick
Delphi-Quellcode:
schon Schluss (so wird es jedenfalls beschrieben)
TEdit.OnExit
|
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.
|
AW: Zustand eines Buttons erkennen
Zitat:
Delphi-Quellcode:
richtig ... ein
TSpeedButton
Delphi-Quellcode:
bekommt aber den Fokus (vor dem Klick)
TButton
|
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.
|
AW: Zustand eines Buttons erkennen
Zitat:
Delphi-Quellcode:
und einem Mausklick.
TButton
Wäre es anders hätte er nicht gefragt, weil er kein Problem hätte ;) |
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.
|
AW: Zustand eines Buttons erkennen
Zitat:
|
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 05:03 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