Seite 1 von 2

Wieviele Zeilen kann man in ein ListIconGadget einlesen?

Verfasst: 12.11.2004 18:25
von Gerhard
Hallo
wieviele Zeilen kann man in ein ListIconGadget einlesen?
Es gibt Funkamateure, die haben ca. 35000 QSOs (Datensätze=Zeilen).
Geht das noch in ein ListIconGadget rein?

Danke für die Antwort
Oder muss man da eine andere Lösung suchen?!!

Gruss Gerhard

Verfasst: 12.11.2004 18:58
von MLK
Da kannste auch 70000 Einträge machen.

Code: Alles auswählen

If CreateGadgetList(OpenWindow(0,0,0,200,500,#PB_Window_ScreenCentered | #PB_Window_SystemMenu,""))
    ListIconGadget(0,10,10,180,450,"Datensätze",150)
    For i=1 To 70000
        AddGadgetItem(0,i,"Datensatz Nr."+Str(i))
    Next
    While WaitWindowEvent()<>#PB_Event_CloseWindow
    Wend
EndIf
(gruß an sparcoder Deem ;-) )

Verfasst: 12.11.2004 19:23
von orange-blue
Das höchste was ich probiert hab ist 10000000, aber da hab ich dann aufgehört, da mir das zu lange dauert.

Verfasst: 12.11.2004 19:32
von Gerhard
Danke für die Antwort,
hmm, also von daher könnte ich diese Menge an Datensätzen so darstellen. Aber so wie orange-blue
schrieb, dauert es offensichtlich doch länger,
bis der letzte Datensatz dadrin ist.
Da wäre eine andere Lösung besser? Etwa eine
graphische Ausgabe...
Ich werds selber mal probieren. Vielleicht gehts ja
doch noch akzeptabel schnell.
Also danke für die Antworten
Gruss Gerhard

Verfasst: 12.11.2004 19:38
von MLK
mit HideGadget() kann man die geschwindigkeit fast vervierfachen!

Code: Alles auswählen

If CreateGadgetList(OpenWindow(0,0,0,200,500,#PB_Window_ScreenCentered | #PB_Window_SystemMenu,"")) 
    ListIconGadget(0,10,10,180,450,"Datensätze",150)
    start=ElapsedMilliseconds()
    For i=1 To 70000
        AddGadgetItem(0,i,"Datensatz Nr."+Str(i)) 
    Next
    ohne=ElapsedMilliseconds()-start
    
    ClearGadgetItemList(0)
    start=ElapsedMilliseconds()
    HideGadget(0,1)
    For i=1 To 70000
        AddGadgetItem(0,i,"Datensatz Nr."+Str(i)) 
    Next
    HideGadget(0,0)
    mit=ElapsedMilliseconds()-start
    MessageRequester("","ohne HideGadget(): "+Str(ohne)+Chr(13)+"mit HideGadget(): "+Str(mit)+Chr(13)+"mit, ist "+StrF(ohne/mit,1)+" mal schneller")
    While WaitWindowEvent()<>#PB_Event_CloseWindow 
    Wend 
EndIf

Verfasst: 12.11.2004 19:42
von GPI
Und wichtige Anmerkung: Die Anzahl ist von OS abhängig! Bei Win98 streikts früher.

Verfasst: 12.11.2004 20:12
von RAaBe
Hallo,

das Beispiel ist ein guter Vergleich. Bei mir kommt ein 20facher Zeitgewinn heraus.

Bis dann...

Verfasst: 13.11.2004 23:15
von Gerhard
Ja, das ist ja toll mit dem HideGadget. Da passiert
wahrscheinlich einiges im Hintergrund, erst dann
wirds angezeigt. Sehr guter Tipp.
Damit werde ich experimentieren

Servus
Gerhard

Verfasst: 13.11.2004 23:59
von GPI
Bei jeden Einfügen wird halt die Liste gezeichnet. Und das summiert sich einfach.

Die andere Methode ist, mittels SendMEssage() das Gadget-Neuzeichnen abzuschalten, hat aber den nachteil, das man es so nicht auf linux übertragen kann...

Verfasst: 14.11.2004 18:48
von PBZecke
Wie machen das eigentlich große Datenbanken wie zb. Access? Die werden doch nicht hunderttausend Datensätze in eine Listenansicht laden. Die laden doch sicherlich nur etwas mehr als angezeigt werden kann, und beim Scrollen die nächsten Datensätze.

Oder?