Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Einträge in Combobox verschieben


Diamond - Fr 06.03.09 12:03
Titel: Einträge in Combobox verschieben
Hi,

beschäftige mich seit heute morgen an einem Problem. Unter anderem sollen unsere Comboboxen sortiert werden.
Ihr Inhalt ist jedoch variabel und wird aus einer Datenbank gelesen.
Am Anfang hab ich mir gedacht: "Klasse kannst ja Sorted benutzen", wobei sich dann mein jetziges Problem entwickelte.
Der Eintrag "Bitte wählen..." rutscht ganz nach unten weil unsere Daten mit Ziffern beginnen. (Je nach Option zumindest)
Solche Tricks wie mit Leerzeichen davor setzen kann ich nicht gebrauchen, da ich nicht weiß wie mit den Daten umgegangen wird. Es ist durchaus möglich dass auch in diesen ein Leerzeichen an erster Stelle ist.
Ich bin nun soweit, dass die Liste sortiert gefüllt wird. Danach wird das "Bitte wählen..." geaddet. Die Sortierung ist nun schon wieder ausgestellt.
Wie kann ich diesen Eintrag an erster Stelle der Combobox setzen (Quasi itemindex = 0)?

thx :D


Moderiert von user profile iconGausi: Topic aus Sonstiges (Delphi) verschoben am Fr 06.03.2009 um 11:35


LexXis - Fr 06.03.09 12:07

Du willst den Eintrag an erste Stelle setzen.. Also quasi dorthin bewegen.. Was heißt "bewegen" gleich nochmal auf Englisch? Ahh, Move :idea: :zustimm:


Nersgatt - Fr 06.03.09 12:10

Oder erst die Daten aus der Datenbank lesen, dann sorted auf false und mit combobox1.items.insert(0'Bitte wählen') den ersten Eintrag noch reinschieben.


Diamond - Fr 06.03.09 12:28

Das Problem ist dabei nur, dass da sehr komische effekte bei auftreten!
Bei move erwartet Delphi an zweiter Stelle den Parameter für die neue Position. In meinem Fall also "0".
Das klappt zumindest bei den meisten. Bei einigen klappts aber nur mit "-1". Sind jedoch alles die gleich Comboboxen.
Wenn ich jedoch mit dem Itemindex auf den Eintrag springen will, springt er wie gewohnt mit "ItemIndex := 0" auf den ersten Eintrag. Ich kann mir nicht erklären, warum die Comboboxen (TComboBox) mal "0" und mal "-1" für den ersten Eintrag benötigen.
Gibt es denn nicht etwas, das das Adden und Verschieben in einer Methode macht?



edit: hat sich erledigt! Ich sag nur AddItem und AddObject :D
thx hab heut irgendwie n brett vorm kopf