Seite 1 von 1

XbpCombobox mit mehreren selektierten Einträgen [erledigt]

Verfasst: Do, 26. Jul 2018 22:40
von Werner_Bayern
Servus,

hab die Anforderung, eine Combobox / Dropdown (ja, ins SLE müssen Eingaben möglich sein) zu erweitern. Aktuell kann man damit ja einen Eintrag auswählen oder reinschreiben. Z. B. geht's um die Farbe eines Artikels. Bisher hatte jeder Artikel max. 1 Farbe. Die Combo ist selbstlernend, wird eine neue Farbe eingetippt, kann die beim nächsten Male auch aus der Dropdown ausgewählt werden - mache ich über eine ini-Datei.

Jetzt sollen aber mehrere Farben pro Artikel möglich sein. Das geht ja mit einer Combobox nicht. Eine Listbox scheidet eigentlich aus, da erstens der Platz in der Höhe dafür nicht wirklich da ist und zweitens die Anzahl der Einträge stark variieren können, was dann bei 8 Combos in dem Dialog blöd aussieht, bzw. unübersichtlich wird. Man sollte die 1-3 selektierten Eigenschaften schon auf den 1. Blick sehen können.

Es wäre ok, wenn im SLE drinsteht: "rot, blau, grün", oder halt nur "weiß".

In den Windows Guidelines hab ich nicht wirklich was dazu gefunden.

Doch Listbox mit Button "Wert hinzufügen"?

Oder SLE und Button, der eine Listbox dazu zeigt und die Selektion dann ins SLE übernimmt?

Danke für eure Vorschläge!

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Do, 26. Jul 2018 22:48
von Werner_Bayern
Eigentlich sowas:
ctrl-list-views-image29.png
ctrl-list-views-image29.png (4.97 KiB) 9885 mal betrachtet
Gibt's ja als Asset...

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Fr, 27. Jul 2018 1:27
von AUGE_OHR
hi,
Werner_Bayern hat geschrieben: Do, 26. Jul 2018 22:48 Eigentlich sowas:
zunächst mal hab ich geschaut ob es Windows Konstanten für ListBox/Combobox gibt die eine Checkbox setzten ... scheint nicht so zu sein :(

dann habe ich an OWnerdrawn gedacht aber ich finde keinen XBP_DRAWSTATE_* dafür :shock:
wenn ich mir das aber ansehe überlege ich warum eine Checkbox denn bei XBPLISTBOX_MM_MULTIPLE sind doch ehe die Einträge markiert !
Listbox_Checkbox.jpg
Listbox_Checkbox.jpg (38.18 KiB) 9878 mal betrachtet
Listbox_MultiSelect_Ownerdraw.JPG
Listbox_MultiSelect_Ownerdraw.JPG (42.16 KiB) 9878 mal betrachtet
Werner_Bayern hat geschrieben:Gibt's ja als Asset...
dann schau da doch mal rein wie es dort gemacht wird.

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Fr, 27. Jul 2018 6:48
von brandelh
Hast du mal versucht bei der Listbox der Combobox die Eigenschaft oComboBox:XbpListBox:markMode anzupassen ?
XbpListBox:markMode
Determines the operating mode for marking and selecting items
Attribute: EXPORTED
Data type: Numeric (XBPLISTBOX_MM_SINGLE)


Description
Constants listed in the following table can be used for :markMode. They determine the mode for marking and selecting items in a list box, and are defined in XBP.CH.

Constants for :markMode
Allerdings weiß ich jetzt nicht, wie die Auswahl in die Komma separierte Liste kommen soll.

Wenn nicht, mach selbst eine Kombination aus XbpSLE, XbpPushButton und XbpListbox ...
über den Butten schaltest du die die Anzeige einer Listbox ein (eigenes Fenster), nach oder währende der Auswahl wird der Inhalt der SLE angepasst.

In etwa so in der Art:

viewtopic.php?f=16&t=5276&p=67319&hilit ... %2A#p67319

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Fr, 27. Jul 2018 9:39
von Tom
Ich verwende für solche Aufgaben XbpBrowses mit Ownerdrawing und/oder der XbpSelectColumn aus den Packs, es gehen aber auch Bitmap-Spalten mit Checkbox-Screenshots, die über logische Variablen gesteuert werden. Das ganze wird über einen Popup-Button oder die entsprechenden Events unterhalb des SLE eingeblendet oder standardmäßig angezeigt.

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Fr, 27. Jul 2018 12:21
von Werner_Bayern
brandelh hat geschrieben: Fr, 27. Jul 2018 6:48 Hast du mal versucht bei der Listbox der Combobox die Eigenschaft oComboBox:XbpListBox:markMode anzupassen ?
Das war gleich mein 1. Versuch. Aber geht ja logischerweise nicht, wie soll die Combobox dann mehrere selektierte Einträge im SLE anzeigen und wie soll das auf- und zuklappen gesteuert sein?

Man bräuchte ein List View dazu.

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Fr, 27. Jul 2018 12:32
von Werner_Bayern
Servus Tom,

XbpBrowse als Erstcontrol kommt nicht in Frage wg. der Höhen-Beschränkung.

Habs jetzt über ein SLE mit Pushbutton gelöst, der dann eine Listbox anzeigt und wieder verschwinden lässt.

Aber schön und professionell ist das noch nicht...
test.PNG
test.PNG (2.59 KiB) 9833 mal betrachtet

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Fr, 27. Jul 2018 12:36
von Jan
Werner,

ich hab mir mal was ähnliches gebaut. SLE mit Browse (weil mir in dem Fall das Füllen der Listbox wesentlich zu lange dauert). Das sieht optisch fast exakt wie eine ComboBox aus. Ich hab mir halt einen Button gebaut neben das SLE, de wie der Button in der ComboBox aussieht. Dann sieht man den Unterschied nur noch, wenn man weiß nach was man schauen muß.

Jan

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Fr, 27. Jul 2018 12:41
von Werner_Bayern
AUGE_OHR hat geschrieben: Fr, 27. Jul 2018 1:27 dann schau da doch mal rein wie es dort gemacht wird.
test.PNG
test.PNG (11.78 KiB) 9824 mal betrachtet
Löst aber meine Höhen-Beschränkung nicht, es müsste aufklappbar sein.

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Fr, 27. Jul 2018 12:42
von Werner_Bayern
Jan hat geschrieben: Fr, 27. Jul 2018 12:36 Werner,

ich hab mir mal was ähnliches gebaut.
Servus Jan,

hast ein Bild für uns?

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Fr, 27. Jul 2018 12:45
von Jan
Moin Werner,

kann ich Dir heute Abend geben.

Jan

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Mo, 30. Jul 2018 22:05
von Jan
Werner,

ich schulde Dir noch was:

Oben meine selbstgebastelte Combobox, bestehend aus einem XbpSLE, einem XbpBrowse, und einem Bitmap. Unten die Standard-XbpComboBox:
ComboBox.jpg
ComboBox.jpg (9.7 KiB) 9753 mal betrachtet
Und so sieht die dann ausgeklappt aus. Da passt die Breite des Bitmap nicht 100%ig. Sollte etwas schmaler sein:
ComboBox Ausgeklappt.jpg
ComboBox Ausgeklappt.jpg (15.1 KiB) 9753 mal betrachtet
OK, nicht wirklich sehr identisch. Mit etwas Feinarbeit bekommt man das sicher etwas besser hin. Aber soweit schon OK für mich.

Jan

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Mo, 30. Jul 2018 22:45
von AUGE_OHR
hi,

ich habe noch mal paar Test gemacht.

1.) Combobox Ownerdraw als Procedure
2.) Combobox Ownerdraw als CLASS

zu 1.) irgendwas klappt da mit der Höhe nicht -> "Mini" Schrift
zu 2.) alles OK ... aber wie Multi-Select ?

sobald ich ENTER drücke oder ein neues Item anklicke geht die Listbox "zu"

das so was wohl trotzdem geht sehe ich hier
https://www.codeproject.com/Articles/11 ... Listbox-an
Bild

ich habe mir mal den Source gezogen und werde mir mal ansehen ob ich das mit meiner DXE_Combobox machen kann.

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Di, 31. Jul 2018 13:19
von Werner_Bayern
Jan hat geschrieben: Mo, 30. Jul 2018 22:05 Werner,

ich schulde Dir noch was:
Servus Jan,

danke. Aber da kann man doch auch nicht mehrere Einträge selektieren?

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Di, 31. Jul 2018 13:31
von Jan
Hallo Werner,

wie ich schon schrieb - ich hab da einen normalen XbpBrowse eingebaut.

Du müsstest da vermutlich eine XbpListbox einbauen. Und je nach dem, was Du darin machst, das XbpSle entsprechend aktualisieren. Das sollte ja relativ einfach machbar sein. Die XbpComboBox hat auch eine XbpListbox eingebaut. Aber die ist natürlich so konfiguriert wie man das von einer normalen ComboBox erwarten würde. Die kannst Du also nicht verwenden sondern mußt die Parts selber bauen und selber bestimmen, was jeweils bei Aktionen in dem anderen Part geschehen soll. Also z. B. die Inhalte aller in der XbpListbox markierten Zeilen zu einem String zusammen stellen (bei :itemMarked() ein :getData() machen und per :getItem() den String zusammenstellen), und den dann per oSle:setData() in das SLE einbauen. Mal so ins Blaue geraten.

Jan

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Di, 31. Jul 2018 13:54
von HaPe
Hallo Werner !
Es wäre ok, wenn im SLE drinsteht: "rot, blau, grün", oder halt nur "weiß".
Doch Listbox mit Button "Wert hinzufügen"?
Oder SLE und Button, der eine Listbox dazu zeigt und die Selektion dann ins SLE übernimmt?
Für sowas hatte ich in einem Projekt folgende Lösung eingesetzt:
MoverBox.jpg
MoverBox.jpg (133.03 KiB) 9700 mal betrachtet
Besteht aus einem SLE, einem Button und die MoverBox aus zwei ListBoxen.
Links ist die Gesamtauswahl und rechts die Auswahl für den aktuellen Datensatz.

Ich habe mir dazu die MoverBox-Klasse erstellt welche ich in der jeweiligen Applikation passend parametriere.

Re: XbpCombobox mit mehreren selektierten Einträgen

Verfasst: Di, 31. Jul 2018 16:48
von Werner_Bayern
Danke an alle, so ähnlich (SLE, Button und Listbox) hab ich es dann auch gelöst - siehe oben.