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/)
-   -   Checkbox / Radiobutton: Events nur im Kästchen zulassen (https://www.delphipraxis.net/189025-checkbox-radiobutton-events-nur-im-kaestchen-zulassen.html)

Jimmie 27. Apr 2016 09:26

Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Hallo,

Ich brauche eine Checkbox / einen Radiobutton, bei dem nur das Kästchen aktiv ist. D.h., ein Klick auf den Text soll kein Ereignis auslösen. Kann man es mit einfachen WinAPI-Funktionsaufrufen einrichten? Eine Kombination aus Checkbox und Label daneben möchte ich nicht machen.

Man kann die Ereignisse MouseMove, MouseClick und MouseDblClick überschreiben und dort das Verhalten abfangen. Trotzdem gibt es Probleme mit dem Fokus und bei der Tastaturbedienung (bei den Radiobuttons).

Sherlock 27. Apr 2016 09:49

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Warum schließt Du die einfache Lösung aus? Sportlicher Ehrgeiz? Schonmal von KISS gehört?
Fragen über Fragen.

Nix für ungut,
Sherlock

Christian Seehase 27. Apr 2016 10:02

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Moin Jimmy,

mir ist nicht ganz klar, warum Du ein Verhalten brauchst, mit dem keiner rechnet?
Vielleicht gäbe es für den geplanten Anwendungszweck eine andere Lösung.

Jimmie 27. Apr 2016 10:14

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Hallo,

Es gibt eben Leute, die genau dieses Verhalten haben wollen. Außerdem ist dieses Verhalten in bestimmten Anwendungsfällen schon sinnvoll bzw. habe ich es auch in HTML-Formularen oder sonstigen Anwendungen gesehen.

Für mich ist die Zusammensetzung aus Checkbox und Label nicht wirklich die einfache Lösung. Spätestens bei einer RadioGroup wird es scheitern.
Wenn ich es als eine Komponente haben möchte, muss ich ggf. viele Sonderfälle und so berücksichtigen. Ich möchte das Verhalten über Property umschaltbar machen. Daher dachte, dass es ggf. einen einfacheren Trick geben würde.

rNoob 27. Apr 2016 10:24

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Die einzige Software die ich kenne, wo so nein Verhalten erwünscht ist, sind Setup-Programme, wo Adware mitinstalliert wird.

himitsu 27. Apr 2016 10:45

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Jupp, es ist ein Strandard-Verhalten und es wäre nett, wenn man sich an den Standard hält, damit sich die Benutzer nicht wundern.

Caption weg, Control verkleinern und Label daneben und schon sieht man, dass es nicht mehr STANDARD ist. :stupid:

rNoob 27. Apr 2016 10:50

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Viele klicken auch auf den Text und bemerken dann nicht, dass man die CheckBox/den RadioButton nicht aktiviert hat.
Das ist genau so beabsichtigt in Setups mit Adware.

Zitat:

Zitat von himitsu (Beitrag 1336784)
Jupp, es ist ein Strandard-Verhalten und es wäre nett, wenn man sich an den Standard hält, damit sich die Benutzer nicht wundern.
Caption weg, Control verkleinern und Label daneben und schon sieht man, dass es nicht mehr STANDARD ist. :stupid:

Hoch lebe Linux und die Free Repositories.

Sir Rufo 27. Apr 2016 11:29

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Natürlich habe ich so etwas auch schon gesehen und finde es zwar auch etwas nervig, aber bei Optionen wie "Sind Sie sicher, dass Sie alles löschen wollen?" durchaus berechtigt.

Untersucht habe ich es noch nicht, aber ich wette dort wo ich es gesehen habe ist eine CheckBox ohne Caption und ein separates Label :stupid:

Der schöne Günther 27. Apr 2016 11:37

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Interessante Info am Rande:
Zitat:

Checkboxes without label tags are inaccessible to screen readers.
http://uxmovement.com/forms/why-your...ve-label-tags/

pesi 27. Apr 2016 13:51

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
"Quick and Dirty" würde ich sagen, dann lass die Caption der Box einfach leer und schreib den Text über ein gesondertes Label daneben.

DeddyH 27. Apr 2016 13:58

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Aus dem Ausgangspost:
Zitat:

Zitat von Jimmie (Beitrag 1336766)
Eine Kombination aus Checkbox und Label daneben möchte ich nicht machen.


Sherlock 27. Apr 2016 14:36

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Zitat:

Zitat von DeddyH (Beitrag 1336816)
Aus dem Ausgangspost:
Zitat:

Zitat von Jimmie (Beitrag 1336766)
Eine Kombination aus Checkbox und Label daneben möchte ich nicht machen.


Nebenbei wäre das meiner Meinung nach weder Quick noch Dirty sondern die einfachste und damit auch pragmatischste Methode der Umsetzung, aber explizit ungewollt.

Sherlock

markus5766h 27. Apr 2016 14:53

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
[QUOTE=Sherlock;1336820]
Zitat:

Zitat von DeddyH (Beitrag 1336816)
...
Nebenbei wäre das meiner Meinung nach weder Quick noch Dirty sondern die einfachste und damit auch pragmatischste Methode der Umsetzung, aber explizit ungewollt.
Sherlock

ja, dann hilft nur noch "selber bauen" -->
das OnClick Ereignis auf MouseDown und MouseUp umbiegen,
X und Y auf den Bereich des "Kästchens" prüfen . . .

ne, geht dann ja noch einfacher, das Label einfach desensibilisieren . . .

Luckie 27. Apr 2016 15:40

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Das will er aber nicht. Und dann müsste er sich auch seine eigene Groupbox basteln, denn da funktioniert das mit dem extra Label nicht mehr.

Ich klicke übrigens gerne auf den Text, weil man da nicht so zielen muss mit der Maus.

rNoob 27. Apr 2016 15:41

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Ich klicke viel lieber auf den Text, da man so schon ein gaaaanz klein wenig abschätzen kann, wer ggf. Übles im Schilde führt und wer nicht 8-)

Jimmie 28. Apr 2016 11:31

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Ich habe es jetzt doch gegen meinen ursprünglichen Willen mit Checkbox/Radiobutton und Label rechts daneben gemacht. Alles andere, z.B. Maus-Events überschreiben, funktioniert wegen des Standardverhaltens der Komponente nicht sauber. Man könnte eine von TCustomControl abgeleitete Komponente aus Checbox/Radiobutton und Label basteln, dann gibt es aber auch gewisse Probleme (z.B. mit dem Fokus und so). Es ist nur ein Fenster betroffen, so dass man es wie o.g. machen kann.

Christian Seehase 28. Apr 2016 12:31

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Moin Jimmie,

Zitat:

Zitat von Jimmie (Beitrag 1336776)
bzw. habe ich es auch in HTML-Formularen oder sonstigen Anwendungen gesehen.

Das es Beispiele gibt, wo andere es, für meinen Geschmack, schon falsch machen, sehe ich nicht als Argument an es ihnen gleich zu tun. :wink:
Controls, die sich nicht so verhalten, wie man es erwartet, sind, in meinen Augen, ein Anreiz für eine falsche Bedienung des Programms, und fast schon ein Garant für verärgerte Anwender.

Zitat:

Zitat von Jimmie (Beitrag 1336776)
Außerdem ist dieses Verhalten in bestimmten Anwendungsfällen schon sinnvoll

Kannst Du dafür bitte mal ein Beispiel nennen?
Danke.

Sir Rufo 28. Apr 2016 12:56

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Zitat:

Zitat von Christian Seehase (Beitrag 1336946)
Zitat:

Zitat von Jimmie (Beitrag 1336776)
Außerdem ist dieses Verhalten in bestimmten Anwendungsfällen schon sinnvoll

Kannst Du dafür bitte mal ein Beispiel nennen?
Danke.

[_] JA, ich bin mir sicher, dass ich die Datenbank löschen möchte :stupid:

DeddyH 28. Apr 2016 13:00

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Eher so:
[X] JA, ich bin mir sicher, dass ich die Datenbank löschen möchte :stupid:

Christian Seehase 28. Apr 2016 14:15

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Zitat:

Zitat von DeddyH (Beitrag 1336952)
Eher so:
[X] JA, ich bin mir sicher, dass ich die Datenbank löschen möchte :stupid:

und [OK] ist dann der Default-Button :mrgreen:

Blup 28. Apr 2016 17:05

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Mit Counter (:

[X] JA, ich bin mir sicher, dass ich die Datenbank löschen möchte.
Diese Aktion wird in 00:07 automatisch fortgesetzt.

Dalai 28. Apr 2016 17:21

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Oder mit einem zusätzlichem Eingabefeld, in das ein "JA" oder "OK" einzugeben ist, bevor der Dialog bestätigt werden kann und somit potentiell nicht rückgängig zu machende Dinge ausgelöst werden. Es gibt da diverse Möglichkeiten, daher sehe ich keinen sinnvollen Anwendungszweck für eine Checkbox, die nur auf der Checkmark auf Klicks reagiert.

MfG Dalai

Luckie 28. Apr 2016 17:27

AW: Checkbox / Radiobutton: Events nur im Kästchen zulassen
 
Zitat:

Zitat von Dalai (Beitrag 1336981)
Oder mit einem zusätzlichem Eingabefeld, in das ein "JA" oder "OK" einzugeben ist, bevor der Dialog bestätigt werden kann und somit potentiell nicht rückgängig zu machende Dinge ausgelöst werden.

Gute Idee. Da habe ich noch gar nicht dran gedacht. :thumb:


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