am 12.03.2009 18:23 Uhr schrieb Thomas Tempelmann unter
[email protected]:

Hi,


> Das Hauptproblem ist, daß man erstmal der Listbox beibringen muss,
> dass sie die Scrollbalken so einrichtet, daß sie auch 65000 Zeilen
> suggeriert und anwählbar macht (z.B. durch Page up/down-Tasten usw.)
> 
> Den Rest kann man dann, wie Metti vorschlägt und wie es die "on
> demand" LB macht, über die Paint-Events lösen, also erst die Daten
> holen, wenn sie auch wirklich gezeigt werden sollen.
> 
> Um erstmal die 65000 Dummy-Zeilen in die Listbox zu kriegen, kann man
> evtl. mit der neuen Direktzuweisung arbeiten: Irgendwie kann man doch
> nun die gesamte Listbox in einem Rutsch füllen, indem man Cell(-1,-1)
> zuweist, oder so ähnlich.

Yup, da kann man einen tab-return getrennten string zuweisen, aber...

> D.h, man baut vorher einen passenden String zusammen, und weist den
> dann zu. Das geht vermutlich schneller, als wenn man 65000mal AddRow
> aufruft.

Habe ich auch gedacht. Ist aber langsamer, und zwar nicht zu knapp (4-mal in
meinem Test! Siehe auch
http://support.realsoftware.com/listarchives/realbasic-nug/2008-12/msg00464.
html)
Wahrscheinlich splittet RB den Initstring dann wieder und ruft intern den
addrow-Befehl 65000 mal auf, und man hat nur Zeit damit vertrödelt, den
string für die cell(-1,-1) aufzubauen.

Maximilian Tyrtania



Antwort per Email an