Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Combobox mit mehreren Werten


bwolf - Mi 31.10.07 15:46
Titel: Combobox mit mehreren Werten
Hi all,

folgende frage:
Ich will in einer Combobox mehrere Werte nebeneinander darstellen, ähnlich wie bei dieser:

Moderiert von user profile iconNarses: Screenshot als Anhang hochgeladen.

Geht das mit der Standard-Combo?
Danke für eure Hilfe,
greets ben


Logikmensch - Do 01.11.07 14:05

Das geht schon mit der Standard-Kompo, allerdings musst Du die Items dann selber zeichnen und Dich auch selber um das Anzeigen der Spalten (mit den richtigen Breiten) kümmern.

überschreibe die Methode DrawItem.


zuma - Do 01.11.07 14:45

selber zeichnen ??? wie kommt man darauf ??

würde es in etwa so machen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
// nr z.b aus Datenmenge, schleifenzähler, etc. generieren
lNr := 1
// das, was in der Cobo angezeigt werden soll, zusammen setzen
// (hier sollte natürlich eine Formatierung stattfinden, damit
// die Spaltenbreiten gleichmäßig passen
lAnzeigestring := wert1 + ', ' + wert2 + ', ' + wert3; 
// in die Combobox eintragen
CoBo_Test.Items.AddObject(lAnzeigestring, TObject(lNr));


@logikmensch:
Frage zu deiner signatur:
wie kann es eine lösung geben, wenn gar kein problem da ist ?? ;)


Logikmensch - Do 01.11.07 14:50

Ja, so kann man es natürlich auch machen, aber optisch gesehen ist es nicht dasselbe.

Zu meiner Signatur: Nur Beiwerk - keine weitere Beachtung schenken.


bwolf - Mo 05.11.07 11:25

user profile iconzuma hat folgendes geschrieben:
selber zeichnen ??? wie kommt man darauf ??

würde es in etwa so machen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
// nr z.b aus Datenmenge, schleifenzähler, etc. generieren
lNr := 1
// das, was in der Cobo angezeigt werden soll, zusammen setzen
// (hier sollte natürlich eine Formatierung stattfinden, damit
// die Spaltenbreiten gleichmäßig passen
lAnzeigestring := wert1 + ', ' + wert2 + ', ' + wert3; 
// in die Combobox eintragen
CoBo_Test.Items.AddObject(lAnzeigestring, TObject(lNr));


@logikmensch:
Frage zu deiner signatur:
wie kann es eine lösung geben, wenn gar kein problem da ist ?? ;)


Danke für die Tipps, könnt ihr mir noch n Hinweis geben, wie ich das mit der Spaltenbreite am besten mache?
Ahja, mit

Delphi-Quelltext
1:
Format('%-10s',['String'])                    

siehts ganz gut aus ;)


Logikmensch - Di 06.11.07 10:34

Aber ich muss doch nochmal einwenden (an zuma), dass das Selberzeichnen wirklich
1. keine Große Sache ist (da viele Beispiele auch hier im Forum) und
2. gut zum üben der Sache an sich
3. professionell ausschaut.

:-)