Autor Beitrag
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mo 19.03.07 09:20 
Stellt euch vor, ich habe eine Form mit 2 Checkbox. Im OnClick-Event der 1.Checkbox steht


ausblenden Delphi-Quelltext
1:
CheckBox2.Checked := CheckBox1.Checked;					


Die 2.Box ist also immer dann gecheckt, wenn die 1. es ist. Weil der Boolsche Wert übergeben wird. Nun möchte ich, dass die 2.Box Enable = false wird, wenn die 1.Box Checked true ist. Im ersten Fall, könnte ich die Abhängigkeit der 2.Box von der 1.Box durch Übergabe des Boolschen Wertes erreichen. Nun ist der zu übergebenede Wert jedoch das genaue Gegenteil vom Orginalwert. Mir wäre lieb, wenn das Ändern der Eigenschaft Enabled genauso komfortabel ist, wie beim Checked. Ich könnte auch mit if-Abfragen arbeiten, frage aber hier, ob es eine Möglichkeit gibt, einen Boolschen Wert umzudrehen. Sowas wie!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
CheckBox2.Enabled := (-1) * (CheckBox1.Checked);

//oder

CheckBox2.Enabled := reverse(CheckBox1.Checked);

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 19.03.07 09:28 
NOT ist das Zauberwort

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mo 19.03.07 09:33 
Danke, ist genau das was ich gesucht habe.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mo 19.03.07 12:10 
Damit ich auch mal was einbeingen kann, was ich an der Uni gelernt habe. Wenn du das mit Checkboxen macht ist das rein intuitvgesehen total schlecht, weil es dafür Radioboxen gibt. Der Benutzer wird damit erst in die irre geführt. Interaktiv gesehen also eine schlechte wahl.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mo 19.03.07 12:23 
user profile iconuall@ogc hat folgendes geschrieben:
Damit ich auch mal was einbeingen kann, was ich an der Uni gelernt habe. Wenn du das mit Checkboxen macht ist das rein intuitvgesehen total schlecht, weil es dafür Radioboxen gibt. Der Benutzer wird damit erst in die irre geführt. Interaktiv gesehen also eine schlechte wahl.


Nicht ganz richtig! Die Inhalte beider CheckBoxen haben nur entfernt etwas miteinander zu tun. Bei der Verwendung von RadioBoxen wäre man nur in der Lage eine der Beiden zu wählen. Es ist aber der Ordentlichkeit halber notwendig, dass man die 1.Box nicht mehr auswählen kann, wenn man die 2. Auswählt.

Ein Beispiel:
CheckBox 1: Alle Master-Dokumente anzeigen
CheckBox 2: Als Master-Dokument speichern

Der Benutzer muss, wenn er das Dokument als Master speichern will, auch alle anderen Master-Dokumente angezeigt bekommen. Automatisch, wenn er speichern will. Der Ordnung halber!

Da die 2.CheckBox, die Funktion der 1. logisch implementiert und nicht abgewählt werden darf und der Benutzer auch keins von beiden auswählen können muss, verwende ich keine RadioBox. Aber das konntest Du nicht wissen, weil Du nicht wusstest, was ich genau bezwecke!

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mo 19.03.07 13:49 
Huhu sorry wenn ich dir wiedersprechen muss.
Eine Checkbox darf keine andere beeinflussen, das mit den Radioboxen war nur ein Beispiel.
In deinem Fall kann man es anders lösen z.b.

"Ein Beispiel:
CheckBox 1: Alle Master-Dokumente anzeigen
CheckBox 2: Als Master-Dokument speichern

Der Benutzer muss, wenn er das Dokument als Master speichern will, auch alle anderen Master-Dokumente angezeigt bekommen. Automatisch, wenn er speichern will. Der Ordnung halber!"

->

Lösung:
RadioBox 1: Alle Master-Dokumente anzeigen
RadioBox 2: Alle Master Dokumente anzeigen & als Master Dokument speichern

Es gibt schon für alles immer eine Lösung. (wenn auch aufgrund des langen Textes es bestimmt in dem Kontext noch
andere Lösungen gibt)

Beispiel Autoscout24.de suche -> die ist einfach nur schlecht (habens validiert)
genau dein Verhalten trifft da auf,
nur bei mehren Chekcboxen die sich irgendwie gegenseitig beeinflussen (man weiß nicht mal wie) extrem schlimmeres Verhalten

Bei dem Beispiel spart man sich Zeit aufgrund des Fitts Law (nur 1 ankreuzen),
büßt aber Zeit aufgrund des Hickmans Law ein (Entscheidung bei gleichem Namen).

Vorteil ist aber, dass es den User nicht überrascht (Radioboxen immer nur 1 auswählbar, Checkboxen mehrere, Checkboxen beeinflussen sich nicht gegenseitig)

EDIT: Mal ein sehr extremes Beispiel
Wenn man 10 Radioboxen hat, dann ließt man sich erst den gazne Text durch und entscheidet dann was man nehmen will.
Wenn man 10 Checkboxen hat, dann ließt man sich das erste durch, und wenn mans brauch markiert mans, dann das nächste usw.
Was eben jetzt vermieden werden soll ist folgendes: Man markiert die ersten 9, und mit dem Häkchen bei Nr. 10 werden alle anderen 9 wieder entfernt -> besser 2 Radioboxen machen, die einem zuerst die Auswahl geben zwischen dem 10 element
oder doch dem ankreuzen aller Elemente die dann als Checkbox untergeordnet sind.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 19.03.07 15:20 
Das Vorgehen mit den Checkboxen ist eigentlich sehr weit verbreitet und aus Benutzersicht meiner Meinung nach auch korrekt. Du hast einmal weniger Text zu lesen und zu überlegen und wenn man das Ganze schön einrückt, ist es übersichtlicher. Ich habe bisher bessere Erfahrungen mit solchen Konstellationen gemacht, als mit RadioButtons.
Diese haben auch ihre Berechtigung, aber wirklich nur, wenn alle Optionen sich gegenseitig ausschließen. Wenn man die Optionen so miteinander verschachteln muss, dass man diese Bedingung erfüllen kann, führt man den Sinn derselben ad absurdum.

Dein Beispiel ist einfach nur schlechtes GUI-Design. Denn wenn CB10 = true Bedingung für die Anwählbarkeit der restlichen 9 sein muss, dann wird dieses ganz nach oben gesetzt und die anderen 9 darunter eingerückt. Und schon ist alles eindeutig und für den Benutzer klar ersichtlich.
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mo 19.03.07 15:27 
Nein, ich meinte eher wenn eine Checkbox die ziemlich weit unten ist wiederum andere 5 deaktiviert. Das ist schlecht. Es wird nunmal so gelehrt, und es gibt wohl auch genug Studien die eben belegen, dass eben dies ein ungewolltes Verhalten zeigt.
Das kann ich leider nicht ändern, und wenn man die Vorlesung besucht mit ein paar negativ Beispielen (Autoscout24) dann macht das alles auch schon Sinn.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 19.03.07 15:46 
Das hatte ich ja auch gesagt. Sobald die Checkboxen aber ordentlich positioniert und eingerückt sind, ist das auch in Ordnung. Sobald eine CB aber weiter oben liegende CBs deaktiviert ist das wirklich schlecht.

Es kommt eben immer darauf an, wie man solche Dinge umsetzt.

Ich habs mir mal bei AutoScout24 angeschaut. Ein bisschen rumgeklickt und das Verhalten bei Nur Händlerangebote und Nur Privatangebote gesehen. Das ist wirklich mies, da gehören RadioButtons hin, da die beiden Optionen sich ja gegenseitig total ausschließen.

Aber wenn die zweite Option die erste bedingt, ist das durchaus in Ordnung. Beispielsweise im angehängten Screenshot. So sollte so etwas dann aussehen. Hier ist es sehr schwierig die CBs durch RBs zu ersetzen, vor allem wegen den langen Bezeichnungen. Denn die zweite Option macht nicht wirklich Sinn, wenn die erste nicht aktiv ist.
Einloggen, um Attachments anzusehen!
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mo 19.03.07 17:18 
Jo ok hast in dem Fall recht, da die Comboboxen eben nicht in einer Reihe sind. Die 2. gehört in dem Fall zur ersten.
Normal wäre die 2. ja ausgegraut und würde erst aktiv werden, wenn man die erste markiert hat. So kenn ich es jedenfalls wie es gemacht sein sollte.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 19.03.07 17:50 
user profile iconuall@ogc hat folgendes geschrieben:
Jo ok hast in dem Fall recht, da die Comboboxen eben nicht in einer Reihe sind. Die 2. gehört in dem Fall zur ersten.
Normal wäre die 2. ja ausgegraut und würde erst aktiv werden, wenn man die erste markiert hat. So kenn ich es jedenfalls wie es gemacht sein sollte.

Genauso ist es in meinem Beispiel auch. Nur im Moment ist eben der erste auch abgehakt. (Der Screenshot ist übrigens aus dem Microsoft Office SharePoint Server 2007.)
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Di 20.03.07 09:11 
Meine 2 Checkboxes haben 2 unterschiedliche Funktionen.

1. Anzeige verändern
2. Speicheroptionen

Ich habe die Checkboxes in unterschiedlichen GroupBoxes untergebracht und mit der Überschrift
Anzeigeoptionen und Speicheroptionen versehen. Da es verschiedene Anzeigeoptionen gibt und verschiedene Speicheroptionen, wäre es verwirrender, wenn die Möglichkeit die Anzeige zu verändern bei der Speicheroption steht und andersherum. Nur weil die Auswahl einer Option eine andere implementiert oder deaktiviert, muss nicht zwangsläufig eine RadioBox verwendet werden.


PS: Was im Studium gelehrt wird ist alles richtig, aber nicht immer so umsetzbar oder einsetzbar.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.