Hi.
Ich möchte ein ListIconGadget mit vielen Datensätzen aus einer Datenbank füllen. Es können aber nicht alle Daten sofort abgefragt und angezeigt werden, stattdessen gibt es einen Thread, der die Datensätze abruft und das ListIconGadget soll zuerst nur die ersten 50 Datensätze anzeigen (nachdem diese von dem Thread abgefragt wurden) und später den Rest anzeigen. Der Rest soll genau dann in 50-Datensätzen-Schritten angezeigt werden, wenn der Benutzer beim ListIconGadget über dreiviertel der Höhe herunterscrollt. Das heißt, das Scrollen nach unten soll das weitere Befüllen des ListIconGadgets triggern.
Mit welcher Funktion, gerne auch API, kann ich den "ScrollState" des Gadgets abfragen?
Schöne Grüße,
es_91.
ListIcon ScrollState ?
Re: ListIcon ScrollState ?
Position der Scrollbar in einem ListIconGadget ermitteln: http://www.purebasic.fr/german/viewtopi ... =3&t=27911es_91 hat geschrieben:Mit welcher Funktion, gerne auch API, kann ich den "ScrollState" des Gadgets abfragen?
Grüße ... Kiffi
a²+b²=mc²
Re: ListIcon ScrollState ?
Was hindert dich daran, das ListIconGadget komplett zu befüllen, wenn die Daten vorliegen ?
Meines Wissens gibt das sehr unschöne Effekte. Wenn ein ListIcon Stück für Stück "befüllt" wird, während der User
es sieht oder gar darin herumfuhrwerkt, springt es immer wieder an den ersten Eintrag zurück, den man dann wieder
korrigieren muss. Es ist also ein böses "Gezuckel".
Es schwirrt hier im Forum ein Snippet herum, mit dem man das neuzeichnen eines ListIcons unter Windows unterbinden kann.
Damit ist es möglich, das Gadget viel schneller zu befüllen. Also meines Erachtens erst befüllen wenn alle Daten da sind.
Eventuell dem Benutzer ein kleines Fenster mit Fortschrittsbalken präsentieren, in dem mitgeteilt wird, das gerade etwas
heftig viel zu tun ist... So als Vorschlag.
Meines Wissens gibt das sehr unschöne Effekte. Wenn ein ListIcon Stück für Stück "befüllt" wird, während der User
es sieht oder gar darin herumfuhrwerkt, springt es immer wieder an den ersten Eintrag zurück, den man dann wieder
korrigieren muss. Es ist also ein böses "Gezuckel".
Es schwirrt hier im Forum ein Snippet herum, mit dem man das neuzeichnen eines ListIcons unter Windows unterbinden kann.
Damit ist es möglich, das Gadget viel schneller zu befüllen. Also meines Erachtens erst befüllen wenn alle Daten da sind.
Eventuell dem Benutzer ein kleines Fenster mit Fortschrittsbalken präsentieren, in dem mitgeteilt wird, das gerade etwas
heftig viel zu tun ist... So als Vorschlag.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: ListIcon ScrollState ?
http://www.rsbasic.de/aktualisierung/wi ... 3%BCgen.pbBisonte hat geschrieben:Es schwirrt hier im Forum ein Snippet herum, mit dem man das neuzeichnen eines ListIcons unter Windows unterbinden kann.
Eigentlich nicht:Bisonte hat geschrieben:Meines Wissens gibt das sehr unschöne Effekte. Wenn ein ListIcon Stück für Stück "befüllt" wird, während der User
es sieht oder gar darin herumfuhrwerkt, springt es immer wieder an den ersten Eintrag zurück, den man dann wieder
korrigieren muss. Es ist also ein böses "Gezuckel".
Code: Alles auswählen
EnableExplicit
Define EventID
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(1, 0, 0, WindowWidth(0), WindowHeight(0), "", WindowWidth(0)-30, 0)
AddWindowTimer(0, 123, 100)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Timer And EventTimer() = 123
AddGadgetItem(1, -1, "Item " + Random(999), 0, 0)
EndIf
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIfRe: ListIcon ScrollState ?
Kiffi hat geschrieben:Position der Scrollbar in einem ListIconGadget ermitteln: http://www.purebasic.fr/german/viewtopi ... =3&t=27911es_91 hat geschrieben:Mit welcher Funktion, gerne auch API, kann ich den "ScrollState" des Gadgets abfragen?
Danke, Kiffi und Dank an RSBasic. Zu dem was Bisonte gesagt hat, schreibe ich später noch was.RSBasic hat geschrieben:Mit:Code: Alles auswählen
GetScrollPos_(GadgetID(#Gadget), #SB_VERT)

