Delphi-PRAXiS

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/)
-   -   Delphi FMX Check Combobox (https://www.delphipraxis.net/198936-fmx-check-combobox.html)

franktron 12. Dez 2018 14:22

FMX Check Combobox
 
Kennt jemand eine Check Combobox für FMX oder weis wie man eine erstellen kann.

mkinzler 12. Dez 2018 14:30

AW: FMX Check Combobox
 
Wie soll die Komponente aussehen? Bei einer ComboBox kann man im Normalfall ja nur einen Eintrag auswählen.

franktron 12. Dez 2018 14:38

AW: FMX Check Combobox
 
Liste der Anhänge anzeigen (Anzahl: 1)
https://www.delphipraxis.net/attachm...1&d=1544625505

So etwa

Harry Stahl 12. Dez 2018 18:32

AW: FMX Check Combobox
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sowas könntest Du Dir eigentlich relativ einfach selber zusammenbasteln:

Ausgehend von einem TLayout, füge dort ein TEdit ein, füge dort noch ein TDropDwonEditButton hinzu und setze Aligned des TEdit auf Top. Setze u.U. den Text auf "None Selected" und wenn der User dort keine Eingabe machen können soll, die Eigenschaft für TEdit auf ReadOnly.

Unter dem TEdit fügst Du eine TListBox ein (Client aligned) mit SchowCheckboxes auf true.

Anschließend setzt Du das Layout auf die gleiche Höhe wie das Tedit (dadurch liegt die Listbox außerhalb des Anzeigebereichs).

Wenn der User nun auf den DropDownEditbutton klickt, vergrößerst Du das Tlayout z.B. auf die Höhe 100, so dass die Listbox sichtbar wird, wo der User nun die Items an- oder abwählen kann. Falls gewollt, kannst Du dann ja die angwählten Inhalte im TEdit anzeigen lassen.

Beim erneuten Drücken des DropDownEditbuttons oder Drücken von Return (OnkeyUp) oder Exit (OnExit) der Listbox "schließt" Du dieses "Listbox-Popup" wieder, indem Du die Höhe des Layouts wieder auf die Höhe des TEdits setzt.

Dann wären noch ein paar Feinheiten zu regeln, halt bei Anzeige der Listbox den Checked-Zustand der ListboxItems, anhand des evtl. zuvor gespeicherten Wertes (aus TEdit) zu setzen, aber das ist ja nur noch ein wenig Fummelarbeit.

Mehr als eine halbe Stunde Arbeit sollte dabei aber m.E. nicht anfallen... (anliegend screenshot des hier mal testweise zusammengeklickten Beispiels).

Wenn Du das Teil nur einmal in Deiner Anwendung brauchst, wars das dann auch schon. Brauchst Du es nur zwei oder drei mal, kopiere das ganze Konstrukt, brauchst Du es öfter, auch in anderen Apps, könntest Du auch überlegen, ein Tframe, statt einem TLayout zu verwenden und somit das Teil wiederverwendbar zu machen.

Rollo62 13. Dez 2018 07:00

AW: FMX Check Combobox
 
Als PopupFrame könnte man verschiedene Listen verwenden (TListBox s. Harry unten, aber auch TListView).

Ein TListView hätte direkt eine Checkbox-Option.

Es wäre auch einen Versuch Wert den DynamicItem Editor von der TListView auszutesten,
oder einem Custom TListView Style eine "schönere, zusätzliche" CheckBox hinzuzufügen, die man dann im RuntimeCode abfragen kann (sowas hatte ich mal für TSwitch gemacht).

Ist zwar immer etwas Handarbeit nötig, aber das wären wohl die offiziellen Wege wie FMX das vorsieht.

Rollo

franktron 14. Dez 2018 08:30

AW: FMX Check Combobox
 
Danke Harry so hat es geklappt

Harry Stahl 14. Dez 2018 13:37

AW: FMX Check Combobox
 
Zitat:

Zitat von franktron (Beitrag 1420824)
Danke Harry so hat es geklappt

Prima, freut mich.:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr.

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