Delphi-PRAXiS
Seite 1 von 3  1 23   

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/)
-   -   Komponente gesucht (https://www.delphipraxis.net/196674-komponente-gesucht.html)

e-gon 8. Jun 2018 10:38

Komponente gesucht
 
Hallo,

häufig schreibe ich Programm, die in irgendeiner Form Datenbanken bearbeiten. Die über Abfragen erhaltenen Daten werden angezeigt und können vom Benutzer dann verändert und in die Datenbank gespeichert werden. Eben der ganz normale Wahnsinn.

Für statistische Zwecke schaffe ich gerne immer noch die Möglichkeit benutzerdefinierter Abfragen. Dabei nutze ich unterschiedliche Komponenten - meistens TEdit für Text und TCheckBox für ja/nein-Abfragen.

Ein Beispiel: Um in der Abfrage alle Produkte mit einem bestimmten Namen zu finden, bietet sich TEdit natürlich an. Für die Farbe benutze ich hingegen gerne CheckBoxen. Also eine CheckBox für rot, eine für grün, eine für blau, usw... Dadurch kann man auch mehrere Produkte unterschiedlicher Farbe gleichzeitig finden. Also wenn die CheckBox für rot und blau auf True stehen, eben alle roten und blauen Produkte.

Allerdings hat es sich oft gezeigt dass nicht nur eine positive Auswahl (also z.B. alle roten und blauen Produkte) sondern auch eine negative Auswahl (also z.B. keine grünen Produkte) gewünscht wird. Dafür bräuchte ich allerdings eine CheckBox mit drei Zuständen: 1. nicht ausgewählt, 2. positiv ausgewählt, 3. negativ ausgewählt.

Bisher löste ich das Problem immer mit einer normalen CheckBox, die auch bei einem Rechtsklick gecheckt oder nicht gecheckt werden kann, deren Text bei Checked=True aber rot angezeigt wird und somit als negative Auswahl markiert ist. Aber auf Dauer ist das keine gute Lösung. Deshalb meine Frage an Euch: Kennt Ihr dafür eine brauchbare Komponente?

Gruß
e-gon

SProske 8. Jun 2018 10:44

AW: Komponente gesucht
 
Ich hätte das 2teilig gestaltet - erst die "Meta"-Auswahl (enthält/enthält nicht bei Checkboxen, enthält/startet mit/endet mit/enthält nicht.. bei Zeichenketten, gleich/ungleich/größer/kleiner bei Zahlen) und dann die Angabe des konkreten Werts bzw. der konkreten Werte.

Jasocul 8. Jun 2018 10:48

AW: Komponente gesucht
 
Zitat:

Zitat von e-gon (Beitrag 1404238)
Dafür bräuchte ich allerdings eine CheckBox mit drei Zuständen: 1. nicht ausgewählt, 2. positiv ausgewählt, 3. negativ ausgewählt.

Schau dir dazu mal die Eigenschaft AllowGrayed an.
Alternativ wechselst du auf Radiogroups. Das benötigt allerdings mehr Platz auf der Form.

e-gon 8. Jun 2018 10:55

AW: Komponente gesucht
 
Danke für die schnellen Antworten!

Leider ist der Platz oft das Problem. Deshalb würde ich schon gerne das alles mit einer einzigen Komponente machen. Zweiteilig oder gar drei Radioboxen fressen einfach zu viel Platz.

Stimmt! Die Eigenschaft AllowGrayed könnte ich evtl. dazu nutzen. Muss es mir mal genauer anschauen...

Gruß
e-gon

bcvs 8. Jun 2018 11:17

AW: Komponente gesucht
 
Wie wäre es mit einer Combobox mit drei Einträgen: enthält / enthält nicht / egal ?

KodeZwerg 8. Jun 2018 11:18

AW: Komponente gesucht
 
Dann mach es doch über ComboBoxen, der Platz ist identisch, oder FlowPanels.

e-gon 8. Jun 2018 11:47

AW: Komponente gesucht
 
Bei ComboBoxen ist das Problem, dass man mindestens zwei Klicks braucht, während es bei einer CheckBox (mit Rechts- oder Linksklick) derzeit nur ein Klick ist.

Ein Produkt kann nämlich bis zu 30 verschiedene Eigenschaften haben und, wenn diese wie bei den Farben aufgedröstelt werden, aus 10 oder mehr Möglichkeiten bestehen. Da spielt ein oder zwei Klicks durchaus eine Rolle. Deshalb ist die Eigenschaft AllowGrayed bei ComboBoxen auch nicht so geeignet.

Mir kam aber gerade die Idee pro Möglichkeit ein einfaches TLabel zu nutzen und je nachdem wo der Benutzer hinklickt (vordere Bereich für positiv ausgewählt, mittig für nicht gewählt, hinterer Bereich für negativ ausgewählt) das Label mit entsprechender Hintergrundsfarbe zu markieren.

Was haltet Ihr davon? Wäre sowas intuitiv?

rapante 8. Jun 2018 12:08

AW: Komponente gesucht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hy,
wenn du keine eigene Komponente bauen möchtest, geht es am schnellsten mit einer RadioGroup:
3 Spalten. Itmes: ja, nein, egal (oder so ähnlich ;) )

Das nimmt nicht viel mehr Platz ein...

Jumpy 8. Jun 2018 12:10

AW: Komponente gesucht
 
Das Problem ist, wir genau treffe ich die richtige Stelle. Genauso fände ich bei der Checkbox-Idee es evtl. unintuitiv mit der rechten Maustaste zu klicken, um zu negieren.

Variante: z.b. blaues Label: 1x klick ausgewählt, wird gehighlighted, 2ter klick negiert, 3ter klick wieder abgewählt?

Bernhard Geyer 8. Jun 2018 12:22

AW: Komponente gesucht
 
Zitat:

Zitat von e-gon (Beitrag 1404245)
Stimmt! Die Eigenschaft AllowGrayed könnte ich evtl. dazu nutzen. Muss es mir mal genauer anschauen...

Und gesetzt wird über das Property State (cbChecked, cbUnchecked und cbGrayed)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 Uhr.
Seite 1 von 3  1 23   

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf