Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Was ist schneller, StringList oder Combobox? (https://www.delphipraxis.net/104226-ist-schneller-stringlist-oder-combobox.html)

Code 29. Nov 2007 15:32


Was ist schneller, StringList oder Combobox?
 
Hallo Alle!

Ich möchte in einer Combobox oder in einer Stringliste ca. 3100 Einträge laden, was ist beim durchsuchen schneller?

Gruß
Klaus

mkinzler 29. Nov 2007 15:34

Re: Was ist schneller, StringList oder Combobox?
 
Die ComboBox verwendet intern eine StringListe

peschai 30. Nov 2007 05:57

Re: Was ist schneller, StringList oder Combobox?
 
Hallo

Verwendet die ComboBox wirklich intern eine TSTringList ?
Ich dachte, daß dies eine WindowsCore Komponente ist und Delphi nur einen Wrapper aussenrum gelegt hat ?

Ghostwalker 30. Nov 2007 06:03

Re: Was ist schneller, StringList oder Combobox?
 
Es ist tatsächlich so, das die ComboBox eine Stringliste verwendet. Aber auch ohne dieses Wissen ist die Frage
einfach zu beantworten. Das die ComboBox eine visuelle Komponente ist, ist sie auch beim Laden etwas langsamer, da sie
ja die Darstellung aktuallisieren muß. Das muß die Stringliste nicht.

Du wirst aber bei 3100 Einträgen kaum einen Unterschied feststellen, dafür ist die Datenmenge für gängige Rechner zu klein. :)

raiguen 30. Nov 2007 07:04

Re: Was ist schneller, StringList oder Combobox?
 
Zitat:

Zitat von Ghostwalker
...Das die ComboBox eine visuelle Komponente ist, ist sie auch beim Laden etwas langsamer, da sie ja die Darstellung aktuallisieren muß. ...

Das kann man - bekanntermassen - optimieren, in dem vor dem Laden .Items.BeginUpdate und entsprechend nach dem Laden .Items.EndUpdate gesetzt wird ;)

Aber das war eigentlich nicht die Ausgangsfrage... Da ja die ComboBox intern 'ne StringList ist, dürfte das reine Durchsuchen genauso schnell/langsam sein wie eine entsprechende 'normale' StringList...

SirThornberry 30. Nov 2007 07:10

Re: Was ist schneller, StringList oder Combobox?
 
@Ghostwalker: Bei mir verwendet die Combobox keine TStringList intern. Das kann man auch rausfinden in dem man mal schaut ob Items (TStrings) vom Typ TStringList ist. Bei der Combobox wird ein TStrings-Nachfahre genutzt der die Items direkt auf die Windows-Combobox anwendet (also nix mit doppelter Datenhaltung)

Dezipaitor 1. Dez 2007 00:32

Re: Was ist schneller, StringList oder Combobox?
 
Es ist schneller, wenn man die Einträge selbst verwaltet. Die Strings müssen ja zuerst zur Windows ComboBox kopiert werden. Es gibt also alles doppelt.
Am schnellsten geht es daher, wenn man eine OwnerData ComboBox verwendet. Ich glaube, es müsste so für ComboBox heißen. Für ListView ist es so zumindest definiert. Es sendet immer eine Nachricht, wenn ein String eines Items notwendig ist.
Die ListView von Mike ist ja genauso aufgebaut.

Müsste doch auch für ComboBox gehen. Sonst eben OwnerDraw.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz