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 Combobox mit Multiselect (https://www.delphipraxis.net/51492-combobox-mit-multiselect.html)

maeru 13. Aug 2005 10:37


Combobox mit Multiselect
 
Hallo Leute,

ich möchte eine ComboBox erstellen, die eine Mehrfachauswahl zulässt. Weiss jemand wie das geht ?
Vielleicht kann ich ja auch eine Listbox dazu bringen, dass man sie genaugleich aufklappen kann wie eine ComboBox.
:coder2:
Ich hab da schon einiges durchgesucht. Wäre super, wenn ihr mir helfen könntet.

marabu 13. Aug 2005 11:09

Re: Combobox mit Multiselect
 
Hallo maeru,

herzlich willkommen in der Delphi-PRAXiS.

Hast du dir schon überlegt, was du mit den ausgewählten Strings machen willst? Es handelt sich bei einer ComboBox letzten Endes um ein single line edit control, welches über die aufgeklappte ListBox befüllt wird - vorausgesetzt der richtige Style wurde eingestellt. Ich kann da keinen Sinn entdecken. Beschreibe doch mal, was du mit einer solchen Komponente erreichen willst. Vielleicht finden wir dann eine bessere Lösung.

Freundliche Grüße vom marabu

maeru 13. Aug 2005 13:30

Re: Combobox mit Multiselect
 
Eigentlich ist es ganz einfach. Ich hab so etwas wie eine Profisuche. Jetzt kann mann mehrere Beiträge auswählen (Combo oder Listbox). Von dieser Auswahl suche ich dann den Primärschlüssel (Object) und lasse das ganze gegen meine Datenbank laufen.
Ich weiss, das die Combo nicht gerade das richtige Element dafür ist. Wie gesagt, wenn ich die Listbox dazu bringen kann, sich so aufklappen zu lassen wie eine Combo bin ich mehr als zufrieden.

Gruss

marabu 13. Aug 2005 15:12

Re: Combobox mit Multiselect
 
Gut dass wir nicht mehr über die ComboBox reden müssen, die ListBox gefällt mir irgendwie besser. Dein Wunsch sie auf und zu klappen zu können deutet darauf hin, dass die Suchwörter nur während der Auswahl sichtbar sein sollen. Warum öffnest du nicht einfach einen Dialog (mein Favorit), der die ListBox und zwei Schalter (OK und Abbrechen) aufnimmt?

Wenn du überhaupt nicht vom Klappmechanismus abzubringen bist, dann gefällt dir vielleicht das hier:

Delphi-Quellcode:
procedure TDemoForm.ListBoxEnter(Sender: TObject);
begin
  ListBox.Height := ListBox.Constraints.MaxHeight;
end;

procedure TDemoForm.ListBoxExit(Sender: TObject);
begin
  ListBox.Height := ListBox.Constraints.MinHeight;
end;
Hierbei wird die ListBox automatisch maximiert, wenn sie den Focus erhält und minimiert wenn sie ihn verliert. Während der Entwurfsphase legst du MinHeight und MaxHeight fest, setzt IntegralHeight auf true und sorgst dafür, dass die ListBox in der Z-Order vor den anderen Controls liegt.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 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