![]() |
Delphi-Version: 2010
OnExit bei RadioButton unterdrücken
Servus an alle!
Folgende Situation: Ich habe 2 RadioButtons. Bei einem RadioButton ist beim onExit ein Setfocus auf ein anderes Feld programmiert. (bei Tab-geht er in ein bestimmtes Feld) Wenn ich nun von diesen 2 Radio-Buttons die andere Option anwählen möchte, dann wird immer der OnExit des einen RadioButtons ausgeführt, und logischerweise springt der Cursor in das falsche Feld... :-) Wie bekomme ich es hin, dass bei einem Mausklick z.B: in ein anderes Feld der OnExit nicht ausgeführt wird? Bin dankbar für Tipps. Grüsse Jerry |
AW: OnExit bei RadioButton unterdrücken
Wieso löst Du das nicht einfach über die Tabulatorreihenfolge? Im OnExit den Fokus irgendwo hin zu setzen ist zumindest unelegant, wie Du selbst gerade bemerkst.
|
AW: OnExit bei RadioButton unterdrücken
geht in diesem Fall nicht, da der RadioButton mit der speziellen Option nach dem Tab in ein Feld eines neuen Tabsheets springen muss.
Grüsse Jerry |
AW: OnExit bei RadioButton unterdrücken
Aber nur, wenn man die Tabulatortaste drückt?
|
AW: OnExit bei RadioButton unterdrücken
jep. Es ist eben ein grosses Formular auf 2 Seiten verteilt. Der User soll somit bestmöglichst mit Tab durch die Maske kommen.
|
AW: OnExit bei RadioButton unterdrücken
Mein D2007 spinnt gerade ein wenig, aber wenn Du die RadioButtons z.B. auf ein Panel setzt und dann dessen OnExit nimmst, klappt es dann?
Delphi-Quellcode:
procedure TForm1.Panel1Exit(Sender: TObject);
begin if RadioButton2.Checked then Button1.SetFocus; end; |
AW: OnExit bei RadioButton unterdrücken
leider nein, bringt nicht den gewünschten Effekt. Ich könnte ja auch auf ein anderes Feld mit der Maus drücken, als der andere Button.
Es müsste eine Möglichkeit geben, dass ich den OnExit des einen Buttons unterdrücken könnte, sobald ich die Maustaste gedrückt habe. Kennt da jemand eine Möglichkeit? Grüsse Jerry |
AW: OnExit bei RadioButton unterdrücken
Nein, kenn keine "schöne" und praktikable Möglichkeit.
Tipp: Nimm einen "Next"-Button, welche in der Tabreihenfolge am Ende steht und ins OnEnter kommt das SetFokus zur nächsten Seite. Ich überlege geade, wie der Befehl war, um eine Mausaktion abzubrechen, da ja auch im OnClick (also mit der Maus) der Fokus an ein anderes Control weitergereicht wird. PS: Dieser Next-Button kann auch ganz klein sein (0 Pixel), bzw. außerhalb des sichtbaren Bereichs liegen, dann reagiert er nur noch auf den Tabulator, da ihn die Maus natürlich nicht erreichen kann. :stupid: |
AW: OnExit bei RadioButton unterdrücken
Deine Aussage mit:
"Ich überlege geade, wie der Befehl war, um eine Mausaktion abzubrechen, da ja auch im OnClick (also mit der Maus) der Fokus an ein anderes Control weitergereicht wird." Wäre cool, wenn Du hier diesen Befehl finden würdest... :-) |
AW: OnExit bei RadioButton unterdrücken
So ich habe selber eine Lösung erarbeitet...
Folgende Procedur geschrieben:
Delphi-Quellcode:
Somit kann ich bei dem Ereignis onExit vorgängig eingreifen.
procedure Tfrm_TestUnit.OnAppMessage(var M: TMsg; var Handled: Boolean);
begin if (M.Message = WM_LBUTTONDOWN) or (M.Message = WM_RBUTTONDOWN) then begin MyMouseKlick := True; end; end; Jeweils beim OnEnter des Feldes MyMouseKlick auf False stellen. und dann beim OnExit mit if MyMouseKlick = False ..... Vielleichts hilfs mal jemandem weiter.. Gruss Jerry |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 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 by Thomas Breitkreuz