![]() |
Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
Hallo
kann mir jemand einen Tip geben? In einem Formular habe ich unter anderem 2 TEdit, einige TButton, ein TRadioGroup mit 7 Columns und 4 TCheckBox. Innerhalb der TEdit und der TRadioGroup hat die Betätigung der SPACE-Taste die erwartete Wirkung. Wenn aber ein bestimmter der TButton oder ein beliebiger der TCheckBox den Focos haben, führt SPACE dazu, dass die letzte TCheckBox den Focus erhält und Checked negiert. Für den Button gibt es eine Funktion OnClick, welche den Text eines der TEdit beschreibt. Ich finde nicht heraus, wieso es zu diesem Verhalten von VK_SPACE kommt. Sicher habe ich irgendwo einen Fehler, aber ich finde ihn nicht. |
AW: Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
Kannst du ein (Minimal-)beispiel hochladen?
|
AW: Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
Tabreihenfolge der Komponenten prüfen und ggfls. auf eine (für die Bedienung des Formulares) sinnvolle Reihenfolge bringen.
Prüfen, ob in den OnClick-Ereignissen der Focus verloren geht, ggfls. den Focus im OnClick der TButton auf das zu ändernde TEdit setzen. Gibt es bei irgendeiner (oder auch mehreren) Komponenten ein OnKey...-Ereignis? Ist ggfls. KeyPreview des Formulars auf True gesetzt und es fängt dadurch die Tastatureingaben "irgendwie" ab und reagiert auf (eher ungewöhnliche Weise) darauf? Keine Ahnung ob hier jetzt was "problemlösendes" dabei ist, das wären halt die ersten Schritte, die ich bei einem derartigen Problem beschreiten würde. |
AW: Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
Zitat:
|
AW: Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
Zitat:
Danke |
AW: Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
Ins OnClick/OnCheck/OnChange/sonstwo einen Haltepunkt und dann schauen und hoffen dass der Stacktrace dir zeigt von wo die Änderung ausgelöst wurde.
Wenn nicht, dann versuchen ab da zu debuggen und schauen ob du auf dem Rückweg an dieser Stelle vorbei kommst. (bei SendMessage ginge das, aber hier wird es wohl PostMessage sein, wenn es eine Message war) |
AW: Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Das Verhalten von VK_SPACE ist immer noch reproduzierbar. siehe Test.zip |
AW: Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
Zitat:
Hier gibt es nur noch Form_Create, Form_activate und close. Das merkwürdige Verhalten von VR_SPACE ist immer noch reproduzierbar. |
AW: Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
Der Grund für dieses Verhalten ist so banal, wie genial, wie simpel, wie völlg unerwartet, obwohl es absolut der Spezifikation entspricht (also "erwartungskonform" ist).
In der Caption der CheckBox steht ein & (Ampersand). Wenn man zur Laufzeit schaut, wird man feststellen, dass das & dort fehlt. Ampersand gefolgt von Zeichen bedeutet ShortCut. & + Leerzeichen in 'ner Caption bedeutet, dass das Leerzeichen zum ShortCut "mutiert". In der Caption statt des & zwei && machen, dann ist das Leerzeichenproblem weg und das Ampersand erscheint einmal in der Caption der Checkbox. |
AW: Unerwartete Wirkung von Key SPACE innerhalb eines Formulars
LOL
Siehe auch Label.ShowAccelChar, wobei das
Delphi-Quellcode:
nicht nur bei Label & CheckBox, sondern auch bei Button, GroupBox, RadioButton usw. vorkommt.
&
Bei Label fällt es selten auf, da dort oft kein FocusControl angegeben ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 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