Autor Beitrag
Gahero
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 193

Win Vista HP 64bit
Delphi 2007 Pro
BeitragVerfasst: Do 05.10.06 18:38 
Hab ne Frage zu den ComboBoxen.

Ich hab eine Combobox mit fast 100 Einträgen, die alphabetisch geordnet sind. Ich will aber das der User auswählen kann, ob er alphabetisch oder nach einer anderen Art (die ich vorher festlege) die Einträe sortieren möchte.

Ist das irgendwie machbar?
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Do 05.10.06 18:42 
Nach welcher Art denn z.B.?

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Gahero Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 193

Win Vista HP 64bit
Delphi 2007 Pro
BeitragVerfasst: Do 05.10.06 18:44 
Das ist jetzt schwer zu sagen, weil es eigentlich willkürlich ist!

Sagen wir nach einer, die ich irgendwie vorher bestimme.
Wenn das nicht gehen sollte, kann ich auch Zahlen an die Einträge dranhängen, nach denen er dann ordnen soll, aber das stell ich mir ziemlich schwierig vor.
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Do 05.10.06 19:06 
Allgemein gesagt: Es ist möglich.

Sage doch trotzdem mal bitte ein Beispiel. Weil mehr als ein ja kann ich dir aufgrund der mangelnden Infos nicht geben.

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Gahero Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 193

Win Vista HP 64bit
Delphi 2007 Pro
BeitragVerfasst: Do 05.10.06 19:25 
Ok, es sind 118 Einträge!

Ich will 2 Radiobuttons haben. Wenn der eine markiert ist, soll er es alphabetisch beim klicken der Box ordnen, bei dem anderen Radiobutton nach einer willkürlichen Methode, alos so, dass ich es ihm vorher sagen kann wie er es machen soll!
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Do 05.10.06 19:26 
user profile iconGahero hat folgendes geschrieben:
Ok, es sind 118 Einträge!

Ich will 2 Radiobuttons haben. Wenn der eine markiert ist, soll er es alphabetisch beim klicken der Box ordnen, bei dem anderen Radiobutton nach einer willkürlichen Methode, alos so, dass ich es ihm vorher sagen kann wie er es machen soll!

Jetzt bin ich immer noch nicht schlauer als vorher. :roll:

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Gahero Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 193

Win Vista HP 64bit
Delphi 2007 Pro
BeitragVerfasst: Do 05.10.06 19:34 
Ja, was willst du den wissen, ich kann dir vllt erklären, wie die andere Sortierung aussehen soll; ich versuch es mal:

Ich habe neben der Combobox ein Editfeld, indem eine Zahl eingezeigt wird, wenn man einen Eintrag auswählt. Die zahlen sind von Eintrag zu Eintrag unterschiedlich, aber es gibt auch Einträge, die die gleiche Zahl zugewiesen bekommen haben. Das ganze hab ich mit if-Abfragen gemacht:

ausblenden Delphi-Quelltext
1:
if ComboBox1.Text = 'Irgendwas' then variable := 5;					


Die andere Sortiermethode soll die Einträge nun nach diesen Zahlen sortieren. (Die Zahlen gehen von 5-200)

Reicht das jetzt? :)
Gahero Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 193

Win Vista HP 64bit
Delphi 2007 Pro
BeitragVerfasst: Fr 06.10.06 23:23 
Keiner ne Idee??? :cry:
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Sa 07.10.06 10:59 
user profile iconGahero hat folgendes geschrieben:
Keiner ne Idee??? :cry:


Hallo,

was du mit der ComboBox machen willst, kann die zugrundeliegende ComboBox aus dem Windows-API schon immer: man kann zu jedem Eintrag eine 32-Bit-Zahl zusätzlich abspeichern - die kann man als Pointer verwenden oder als Zahl und danach sortieren, das ist der Box egal. Näheres findet man in der Windows-SDK-Hilfe unter CB_SETITEM bzw. CB_GETITEM. Deine zusätzlichen Felder sind also garnicht nötig.

Leider unterstützt die Delphi-Version diese Funktion nicht. Man kann aber wie immer sich das selbst dazuprogrammieren, ev. als neue Komponente, ist allerdings nicht ganz einfach.

Ein anderer Trick, der noch universeller ist: man hängt Zusatzdaten an die Strings an und fügt vorher soviele Tabs ein (oder setzt den Tababstand entsprechend), dass die Daten in der Box nicht sichtbar sind (Scrollbar abschalten).

Ein Eintrag könnte dann auch mehrere Zusatzdaten enthalten nach dem Schema:

SichtbarerEintrag TAB SortierDatum1 TAB SortierDatum2 usw.

Das Sortieren erfolgt einfach in Methoden:
ComboBox1.SortiereNachEintrag
ComboBox1.SortiereNachDatum1
...
ComboBox1.Sortiere (NachWas : integer)

Gruss Reinhard