Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Maximum für Listboxeinträge (https://www.delphipraxis.net/112482-maximum-fuer-listboxeintraege.html)

knolli 22. Apr 2008 08:10


Maximum für Listboxeinträge
 
Hi,

ich stelle mir grade die Frage, ob eine Listbox eine max. Anzahl an Einträgen hat oder ob da so viel rein geht bis der Speicher voll ist.
Mein Programm stürtz immer ab, wenn ziehmlich viele Einträge in der Listbox stehen und ich diese dann noch bearbeiten will.

mkinzler 22. Apr 2008 08:12

Re: Maximum für Listboxeinträge
 
Ich würde mir eher Gedanken machen, ob es sinnvoll ist, so viele Einträge in eine Listbox zu verfrachten!

Bernhard Geyer 22. Apr 2008 08:14

Re: Maximum für Listboxeinträge
 
Welche OS-Version? Bei älteren Windows-Versionen gibt es an diversen Stellen noch 64-kByte-Grenzen.

Ansosten würde ich alternative ComboBoxen nehmen (wenns unbedingt so viele Einträge sein müssen) die nicht einen Wrapper um das Win32-Control darstellen.

Kroko1999 22. Apr 2008 08:19

Re: Maximum für Listboxeinträge
 
Zitat:

Zitat von mkinzler
Ich würde mir eher Gedanken machen, ob es sinnvoll ist, so viele Einträge in eine Listbox zu verfrachten!

ja, ich auch, wer liest schon mehr als 50 Einträge!

knolli 22. Apr 2008 08:21

Re: Maximum für Listboxeinträge
 
ich hab ja schon ein thema aber dort schreibt mir keiner mehr...
mir wurde der tipp gegeben, dass es an einem speicherüberlauf liegen kann...
siehe hier!

mkinzler 22. Apr 2008 08:29

Re: Maximum für Listboxeinträge
 
Um wie viele Einträge handelt es sich?

knolli 22. Apr 2008 08:44

Re: Maximum für Listboxeinträge
 
das ist mir vorher nicht bekannt, aber ich hatte schon über 400.000 einträge...

mkinzler 22. Apr 2008 08:49

Re: Maximum für Listboxeinträge
 
Brauchst du wirklich so viele Einträge in einer ListBox? :gruebel:

Bernhard Geyer 22. Apr 2008 08:51

Re: Maximum für Listboxeinträge
 
Zitat:

Zitat von knolli
das ist mir vorher nicht bekannt, aber ich hatte schon über 400.000 einträge...

400.000 Einträge. dann ist mir klar wieso es "abstürzt". Es rechnet einfach ein paar minuten wenn die zugrundeliegende Stringlist nicht sortiert abgelegt ist. Und dann noch an ein GUI-Control kann das auch noch verschlechtern. AFAIK müßte der zugrundeliegenende Sortieralgorithmus quadratisch mit der Anzahl der Einträg mehr Zeit benötigen.

Luckie 22. Apr 2008 08:56

Re: Maximum für Listboxeinträge
 
Er nicht aber der Benutzer soll ja was zu tun haben, wenn er den richtigen auswählen muss. ;)

Zitat:

Zitat von Windows SDK
An application sends an LB_SETCOUNT message to set the count of items in a list box created with the LBS_NODATA style and not created with the LBS_HASSTRINGS style.

wParam
Specifies the new count of items in the list box.
Microsoft Windows 95/Windows 98/Windows Millennium Edition (Windows Me) : The wParam parameter is limited to 16-bit values. This means list boxes cannot contain more than 32,767 items. Although the number of items is restricted, the total size in bytes of the items in a list box is limited only by available memory.


hoika 22. Apr 2008 09:09

Re: Maximum für Listboxeinträge
 
Hallo,

ich würde ListView umsteigen,
schau dir mal unter Beispiele "Virtual ListView" an.

TList.Sort benutzt übrigens QuickSort (BinSort oder wie das Dingens heisst),
ist also logarithmisch.


Heiko
PS:
Ja, und 400.000 Einträge sind natürlich Unsinn.
Vorher sinnvoll einschränken (z.B. nach Datum) !

knolli 22. Apr 2008 09:17

Re: Maximum für Listboxeinträge
 
die 400.00 einträge werden nicht in mehreren tagen gelistet..
sonder in 30 SEKUNDEN :cry:

ich frag mich ja uch wozu dsa gut sein soll aber ich hab in der schule dieses Projekt bekommen und MUSS das machen...

mkinzler 22. Apr 2008 09:19

Re: Maximum für Listboxeinträge
 
Am Besten Hirn abschalten!
Dann nimm eine StringListe und keine ListBox

Bernhard Geyer 22. Apr 2008 09:24

Re: Maximum für Listboxeinträge
 
Ich würde eine ListView im Virtuellen Modus betreiben. Dann fällt schon mal das ganz geschaufele der Daten "ins Control" weg.

hoika 22. Apr 2008 09:27

Re: Maximum für Listboxeinträge
 
Hallo Bernhard,

das war mein Text ;)
(siehe weiter oben)


Heiko

Bernhard Geyer 22. Apr 2008 09:34

Re: Maximum für Listboxeinträge
 
Zitat:

Zitat von hoika
das war mein Text ;)
(siehe weiter oben)

ListView gelesen, aber den 2ten Teil mit Virtual ListView überlesen :wall:

knolli 22. Apr 2008 16:46

Re: Maximum für Listboxeinträge
 
Hier habe ich mal den code gepostet, wo mein programm die Daten bearbeiten soll.


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