XbpCombobox mit mehreren selektierten Einträgen [erledigt]
Moderator: Moderatoren
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
XbpCombobox mit mehreren selektierten Einträgen [erledigt]
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!
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!
Zuletzt geändert von Werner_Bayern am Di, 31. Jul 2018 16:49, insgesamt 1-mal geändert.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
Eigentlich sowas:
Gibt's ja als Asset...
Gibt's ja als Asset...
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
hi,
dann habe ich an OWnerdrawn gedacht aber ich finde keinen XBP_DRAWSTATE_* dafür
wenn ich mir das aber ansehe überlege ich warum eine Checkbox denn bei XBPLISTBOX_MM_MULTIPLE sind doch ehe die Einträge markiert !
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
wenn ich mir das aber ansehe überlege ich warum eine Checkbox denn bei XBPLISTBOX_MM_MULTIPLE sind doch ehe die Einträge markiert !
dann schau da doch mal rein wie es dort gemacht wird.Werner_Bayern hat geschrieben:Gibt's ja als Asset...
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: XbpCombobox mit mehreren selektierten Einträgen
Hast du mal versucht bei der Listbox der Combobox die Eigenschaft oComboBox:XbpListBox:markMode anzupassen ?
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
Allerdings weiß ich jetzt nicht, wie die Auswahl in die Komma separierte Liste kommen soll.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
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
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: XbpCombobox mit mehreren selektierten Einträgen
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.
Herzlich,
Tom
Tom
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
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.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
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...
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...
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XbpCombobox mit mehreren selektierten Einträgen
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
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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
Löst aber meine Höhen-Beschränkung nicht, es müsste aufklappbar sein.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
Servus Jan,
hast ein Bild für uns?
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XbpCombobox mit mehreren selektierten Einträgen
Moin Werner,
kann ich Dir heute Abend geben.
Jan
kann ich Dir heute Abend geben.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XbpCombobox mit mehreren selektierten Einträgen
Werner,
ich schulde Dir noch was:
Oben meine selbstgebastelte Combobox, bestehend aus einem XbpSLE, einem XbpBrowse, und einem Bitmap. Unten die Standard-XbpComboBox: Und so sieht die dann ausgeklappt aus. Da passt die Breite des Bitmap nicht 100%ig. Sollte etwas schmaler sein: OK, nicht wirklich sehr identisch. Mit etwas Feinarbeit bekommt man das sicher etwas besser hin. Aber soweit schon OK für mich.
Jan
ich schulde Dir noch was:
Oben meine selbstgebastelte Combobox, bestehend aus einem XbpSLE, einem XbpBrowse, und einem Bitmap. Unten die Standard-XbpComboBox: Und so sieht die dann ausgeklappt aus. Da passt die Breite des Bitmap nicht 100%ig. Sollte etwas schmaler sein: OK, nicht wirklich sehr identisch. Mit etwas Feinarbeit bekommt man das sicher etwas besser hin. Aber soweit schon OK für mich.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
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
ich habe mir mal den Source gezogen und werde mir mal ansehen ob ich das mit meiner DXE_Combobox machen kann.
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
ich habe mir mal den Source gezogen und werde mir mal ansehen ob ich das mit meiner DXE_Combobox machen kann.
gruss by OHR
Jimmy
Jimmy
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
Servus Jan,
danke. Aber da kann man doch auch nicht mehrere Einträge selektieren?
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XbpCombobox mit mehreren selektierten Einträgen
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
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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
Hallo Werner !
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.
Für sowas hatte ich in einem Projekt folgende Lösung eingesetzt: Besteht aus einem SLE, einem Button und die MoverBox aus zwei ListBoxen.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?
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.
--
Hans-Peter
Hans-Peter
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: XbpCombobox mit mehreren selektierten Einträgen
Danke an alle, so ähnlich (SLE, Button und Listbox) hab ich es dann auch gelöst - siehe oben.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>