Thema: Delphi FMX Check Combobox

Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: FMX Check Combobox

  Alt 12. Dez 2018, 19:32
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.
Miniaturansicht angehängter Grafiken
checkcombobox.jpg  

Geändert von Harry Stahl (12. Dez 2018 um 19:43 Uhr)
  Mit Zitat antworten Zitat