Sie müssen viele Elemente (mehr als 10k) in TComboBox hinzufügen (ich weiß, dass TComboBox nicht viele Elemente enthalten soll, aber es ist nicht meine Aufgabe, dies zu ändern), ohne Duplikate hinzuzufügen. Also muss ich die vollständige Liste vor dem Hinzufügen durchsuchen. Ich möchte TComboBox.items.indexof vermeiden, da ich eine binäre Suche benötige, aber die binäre Suche in TStrings nicht verfügbar ist.Effizientes Auffüllen der Combobox in Delphi
Also habe ich eine temporäre Tztringlist erstellt, nach True sortiert und verwendet gefunden. Aber jetzt die temporäre TStringList Zuordnung zurück zu TComboBox.Items
(myCB.Items.AddStrings(myList))
ist wirklich langsam, wie es kopiert die ganze Liste. Gibt es eine Möglichkeit, die Liste zu verschieben, anstatt sie zu kopieren? Oder eine andere Möglichkeit zum effizienten Befüllen meiner TComboBox?
Einfach das zugrunde liegende Problem beheben. 10k Elemente in einer Combo-Box ist lächerlich. Welche Version von Delphi? –
@TomBrunberg Assign ist noch langsamer als AddStrings – siwmas
@J ... Zustimmen, dass 10k ist lächerlich, aber das ändert nichts daran, dass das Hinzufügen von Elementen zu Combobox für ein Szenario wie diese sieht wirklich ineffizient? Es sei denn, ich vermisse etwas .. Delphi-Version -> XE3 – siwmas