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/)
-   -   ComboBox sorted - ItemIndex (https://www.delphipraxis.net/206047-combobox-sorted-itemindex.html)

Youuuu 13. Nov 2020 08:38

ComboBox sorted - ItemIndex
 
Hey,

ich habe ein Problem, ich lass die in der ComboBox eingetragenen Werte sortieren.

Möchte dann einen bestimmten Wert aber bereits auswählen.

Delphi-Quellcode:
Combo.ItemIndex := Combo.Items.IndexOf(Wert);

Das Problem dabei ist das der ItemIndex nicht stimmt, es wird also ein komplett anderer Wert in der ComboBox ausgewählt.

Wie kann ich hier vorgehen?

runningsoft 13. Nov 2020 08:55

AW: ComboBox sorted - ItemIndex
 
Kann es sein, dass du deinen "Wert" bereits vor dem Sortieren der Combobox bestimmt hast? Dann stimmt natürlich dieser Wert nicht mehr.

Youuuu 13. Nov 2020 09:38

AW: ComboBox sorted - ItemIndex
 
Selbst wenn ich

Delphi-Quellcode:
// Daten sind in der ComboBox bereits eingegeben

Combo.ItemIndex := Combo.Items.IndexOf(Wert);
Combo.sorted := True;

setze, das gleiche.

mkinzler 13. Nov 2020 09:45

AW: ComboBox sorted - ItemIndex
 
Durch Sortieren ändern sich die Indizes der Einträge!

Delphi-Quellcode:
Combo.sorted := True;
Combo.ItemIndex := Combo.Items.IndexOf(Wert);

stifflersmom 13. Nov 2020 10:01

AW: ComboBox sorted - ItemIndex
 
Am Besten der Combobox die Werte schon sortiert übergeben.

Youuuu 13. Nov 2020 10:04

AW: ComboBox sorted - ItemIndex
 
Zitat:

Zitat von mkinzler (Beitrag 1477253)
Durch Sortieren ändern sich die Indizes der Einträge!

Delphi-Quellcode:
Combo.sorted := True;
Combo.ItemIndex := Combo.Items.IndexOf(Wert);

Das hatte ich zuerst probiert und das gleiche Ergebnis erhalten, das ein falscher Wert selektiert wird.

Ich übergebe nun die Daten für in eine Stringlist, sortiere und gebe diese dann an die ComboBox weiter.

Uwe Raabe 13. Nov 2020 10:09

AW: ComboBox sorted - ItemIndex
 
Das
Delphi-Quellcode:
Combo.Sorted := True
wird vom darunterliegenden Windows-Control bei der Anzeige ausgewertet, lässt aber die
Delphi-Quellcode:
Combo.Items
unverändert. Der Weg über die sortierte Stringlist ist daher der richtige.


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