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 Trennzeichen in ComboBox? (https://www.delphipraxis.net/130902-trennzeichen-combobox.html)

AlexII 15. Mär 2009 13:43


Trennzeichen in ComboBox?
 
Gibt es eine Möglichkeit in einer ComboBox Trennzeichen zu setzen, wie z.B. in Menu, also eine Linie oder Bindestriche?

toms 15. Mär 2009 13:51

Re: Trennzeichen in ComboBox?
 
Hallo

Eine Trennlinie könntest du selber malen im OnDrawItem Ereignis.

AlexII 15. Mär 2009 13:54

Re: Trennzeichen in ComboBox?
 
Zitat:

Zitat von toms
Eine Trennlinie könntest du selber malen im OnDrawItem Ereignis.

Geht das nur so? Und irgendwie einfacher? Bindestriche sind auch ok.

toms 15. Mär 2009 14:58

Re: Trennzeichen in ComboBox?
 
Du kannst ja Bindestriche zu der Combobox.Items hinzufügen.
Oder wie soll es genau aussehen?

Delphi-Quellcode:
 ComboBox1.Items.Add('-------');

himitsu 15. Mär 2009 14:59

Re: Trennzeichen in ComboBox?
 
du könntest Bindestriche nutzen, da gibt es eventuell auch Vollbreite, welche dann wie eine Linie wirken.

Aber egal ob Bintestriche oder im OnDraw eine Linie zeichnen,
du mußt dann immernoch in OnChange bzw. OnSelect oder so noch dafür sorgen, daß der entsprechende Eintrag nicht selektiert wird.

AlexII 16. Mär 2009 00:14

Re: Trennzeichen in ComboBox?
 
Und wie lautet der Befehl um die Selektierung zu verbieten? Hab in der Hilfe nix gefunden.

HalloDu 16. Mär 2009 00:24

Re: Trennzeichen in ComboBox?
 
Darauf musst du dann im OnChange reagieren und die Bindestrichreihen abschmettern.

Cyberbob 16. Mär 2009 00:36

Re: Trennzeichen in ComboBox?
 
Womit man es aber immernoch Auswählen und Selektieren kann. Die Selektion wird zwar rückgängig gemacht, aber ich finde nicht, dass das schöner Programmirstil ist. Ich habe auch schon mal nach einer Komponente gesucht, die wie die Combobox im IE arbeitet (Mit Kapitel setzen und so), bin aber leider nicht fündig geworden!

alzaimar 16. Mär 2009 06:33

Re: Trennzeichen in ComboBox?
 
Zitat:

Zitat von Cyberbob
... aber ich finde nicht, dass das schöner Programmirstil ist...

Das ist das Verändern des Verhaltens eines Standardcontrols auch nicht. Mit einer Combobox soll man aus einigen wenigen Einträgen einen bestimmten auswählen. Von Bindestrichen, Trennern etc. ist im Zusammenhang mit einer Combobox nicht die Rede.

Wenn Du einen Trennstrich brauchst, dann stimmt dein Konzept nicht. Überarbeite also lieber die Wahl der GUI-Controls, anstatt einem Windows-Control beizubringen, wie es aus der Reihe tanzt.

hanspeter 16. Mär 2009 07:31

Re: Trennzeichen in ComboBox?
 
Zitat:

Zitat von AlexII
Gibt es eine Möglichkeit in einer ComboBox Trennzeichen zu setzen, wie z.B. in Menu, also eine Linie oder Bindestriche?


Wenns ein paar Euromark kosten darf.
Bei den TMS Komponenten gibt es eine HTML Combobox. Da geht sehr vieles. Von Linien über Text und Background Farben,
Schriftarten u.s.w.

Gruß Peter

AlexII 16. Mär 2009 14:05

Re: Trennzeichen in ComboBox?
 
Und wie lautet der Befehl um die Selektierung zu verbieten? Hab in der Hilfe nix gefunden.

Bbommel 16. Mär 2009 14:13

Re: Trennzeichen in ComboBox?
 
Zitat:

Zitat von AlexII
Und wie lautet der Befehl um die Selektierung zu verbieten? Hab in der Hilfe nix gefunden.

Du kannst die Eigenschaft "ItemIndex" der ComboBox in deinem Programmcode setzen und so im Prinzip verhindern, dass eine bestimmte Zeile ausgewählt wird.

Also, wenn du die Trenner wie oben geschrieben beispielsweise mit
Delphi-Quellcode:
ComboBox1.Items.Add('-------');
hinzugefügt hast, dann kannst du im OnChange-Ereignis folgendes ausprobieren:
Delphi-Quellcode:
if (Combobox1.ItemIndex>=0) and (ComboBox1.Items[ComboBox1.ItemIndex]='-------') then
  ComboBox1.ItemIndex:=-1
Damit würdest du halt dafür sorgen, dass gar kein Element ausgewählt wird, sobald jemand auf die Trennzeile klickt. Allerdings bleibt es dabei, wie hier ja schon gesagt wurde, dass beim Fahren der Maus über die Zeilen diese Trennzeile so dargestellt wird, als ob man sie auswählen könnte.

Wirklich sauber ist das also nicht...

Bis denn
Bommel

AlexII 16. Mär 2009 14:35

Re: Trennzeichen in ComboBox?
 
Zitat:

Zitat von Bbommel
Wirklich sauber ist das also nicht...

Es gibt also keine saubere Lösung? :gruebel:

Bbommel 16. Mär 2009 14:50

Re: Trennzeichen in ComboBox?
 
Zitat:

Zitat von AlexII
Es gibt also keine saubere Lösung? :gruebel:

Mit der normalen Windows-Combobox wüsste ich keine. Ich habe mich in so manchem Projekt auch schon mit den Dingern rumgeärgert, weil man ja hier und da Combos sieht, die deutlich mehr können. Aber das sind halt alles nicht die Standard-Comboboxen.

Also, sauber wäre es, eine andere Komponente zu benutzen. Es wurde ja schon vorgeschlagen, dass du dich bei TMS umschauen kannst, aber die kosten halt Geld, ansonsten gibt es bei Torry noch ein paar Comboxen und vielleicht liefert dir Google noch was. Oder halt wirklich selber bauen, viel Spaß. ;) Naja, aber das halt zu den sauberen Ansätzen...

Bis denn
Bommel

AlexII 16. Mär 2009 15:08

Re: Trennzeichen in ComboBox?
 
Hm... ok danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 Uhr.

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