![]() |
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 |
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.
|
AW: Komponente gesucht
Zitat:
Alternativ wechselst du auf Radiogroups. Das benötigt allerdings mehr Platz auf der Form. |
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 |
AW: Komponente gesucht
Wie wäre es mit einer Combobox mit drei Einträgen: enthält / enthält nicht / egal ?
|
AW: Komponente gesucht
Dann mach es doch über ComboBoxen, der Platz ist identisch, oder FlowPanels.
|
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? |
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... |
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? |
AW: Komponente gesucht
Zitat:
|
AW: Komponente gesucht
Zitat:
Was mir an der eigenen Label-Lösung nicht so gefällt: Man kann diese ausschließlich mit der Maus nutzen. Per Tastatur könnte man das Label ja nicht setzen. |
AW: Komponente gesucht
Oder ein kleines Label, wie ein Button.
Standard-Farbe zunächst grau (nicht selected). Linksklick wird grün, rechtsklick rot. Erneuter Linksklick auf grünes Label macht dieses wieder grau (analog rechts und rot). |
AW: Komponente gesucht
Ich würde mit FlowPanels arbeiten die einem ruhig viel Eigenschaften bieten und mit default start-werten anfangen damit irgendwas vorselektiert ist.
Wenn alles sofort mit singleclick Lösung arbeiten soll muss logischer Weise auch alles sofort klickbar/hotkey sein, was ein links/rechts/multi-click Verfahren ausschließt und viel Platz kostet. Für alles wo man +2 Clicks braucht mit deiner Variante, das kann definitiv in einer 3-Klick FlowPanel Lösung enden da Du auf dem Panel ja dann jede Option per CheckBox o.ä. bereitstellen kannst. Klick 1 = FlowPanel zeigen, Klick 2 = Eigenschaften ändern, Klick 3 = Weiter machen/Panel schließen/whatever. Man kann auch ein Button verschiedene Settings haben lassen das der sich selbst auch umbenennt je nachdem wie oft du raufklickst, vieles ist realisierbar, obs praktisch ist müssen Deine Anwender entscheiden :-) Rechtsklick-Maus scheidet für Tastatur-Bedienung ja auch irgendwie aus, oder? |
AW: Komponente gesucht
Zitat:
Rechts = Strg+Leertaste Und die ![]() [edit] Grade was Neues gelernt ... Alt+Shift+NummLock ... hatte es bei mir sonst immer erst in den Windowssetting so eingestellt, dass es automatisch geht, aber wenn das bisher noch nicht aktiviert war, dann ging es nicht. |
AW: Komponente gesucht
Zitat:
|
AW: Komponente gesucht
Zitat:
@KodeZwerg: Es ist dann schon ein Unterschied ob ein oder drei Klicks pro Möglichkeit je Eigenschaft. Bei nur 20 Eigenschaften a 10 Möglichkeiten sind es schon 200 Komponenten. Natürlich nutzt man nur einen kleinen Teil davon, aber die Anzahl Klicks spielt durchaus eine Rolle. Außerdem wäre es gut den Zustand jeder einzelnen Möglichkeit auf einen Blick zu sehen und nicht erst ein FlowPanel öffnen zu müssen. |
AW: Komponente gesucht
Sorry wenn ich bei FlowPanels irgendwie stocken bleibe, alternativ ein kleines ">>" Symbol fürs FlowPanel "öffnen" mit allen Eigenschaften und die absoluten Basics in der Hauptansicht integrieren? Ach ich weiß auch nicht, ich mag halt die fliegenden Fenster für genau diesen Zweck, viel Verpacken bei wenig Platz in der Hauptansicht. Man sollte ja nicht jedes FP offen da rumschwirren lassen, nur eines für den aktuellen Eintrag.
Eine Zweite Alternative die mir einfällt wäre mit TabControls, HauptTab und EigenschaftenTab, hängt halt stark von Deiner Art der Verarbeitung ab, wie etwas realisierbar wäre. |
AW: Komponente gesucht
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal etwas mit Labels herumgespielt. Wie oben erwähnt könnte die Steuerung so laufen, dass ein Klick im vorderen Drittel des Labels die Möglichkeit selektiert (grün), im mittleren Drittel abwählt (weiß) und das hintere Drittel die Sache negiert (rot). Wenn ich die Labels alle gleich lang mache und die Eigenschaft taCenter setze sollte die Steuerung wohl besser gehen.
Das Ganze hat zwei Vorteile: 1. Singleclick 2. Schnelle Übersicht Aber wie intuitiv ist das? @KodeZwerg: Ich sage nicht dass FlowPanel gar nicht gehen. Aber Singleclick ist mir in diesem Fall wichtiger. :) |
AW: Komponente gesucht
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich habe schon die Support-Anrufe im Ohr: "manchmal wird es grün und manchmal rot wenn ich draufklicke..." Vor allem klappt dann die Tastaturbedienung nicht mehr und von Barrierefreiheit ist das meilenweit entfernt. Ich würde bei den Standards bleiben - Checkbox oder Radiogroup. |
AW: Komponente gesucht
Da ist wohl leider was Wahres dran. :(
Ich muss das ganze jetzt mal sacken lassen. Vielen Dank an alle Beteiligten für die Ideen und Vorschläge! Gruß e-gon |
AW: Komponente gesucht
Gerade mal ausprobiert: man könnte auch eine Scrollbar dafür zweckentfremden.
Mit den Eigenschaften Min=0 und Max=2 hat die dann nur drei mögliche Positionen. |
AW: Komponente gesucht
Also ich würde bei den "Standards" bleiben. Das schafft intuitiv dann jeder.
Ich würde sogar kein AllowGrayed verwenden, da es sicherlich noch viele User gibt, die kennen das gar nicht. Sonder nur 2 Checkboxen. "Aktiv" und "Negativ". Aktiv deselektiert würde dann die Abfrage nicht verwenden Aktiv selektiert würde die Abfrage mit positiven Werten verwenden Aktiv und Negativ würde die Abfrage mit negativen Werten verwenden Und die Checkbox Negativ wäre bei nicht selektierter Aktiv-Checkbox natürlich disabled. So wäre das für mich logisch. Wenn's aus Platzgründen nicht mit Text neben der Checkbox passt, dann würde ich das spaltenartig positionieren und mit Spaltentitel benennen. |
AW: Komponente gesucht
Zitat:
Und ich vermute, nicht alle suchbaren Produkte haben alle Eigenschaften. Dann könntest du über eine hierarchische Abfrage ggf. die abzufragenden Parameter einengen. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 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