Seite 1 von 1

Fenster schieben ist verzögert bei sehr vielen Gadgets

Verfasst: 21.02.2022 13:41
von lgb-this
Hallo,

ich habe ein Windows-Programm mit PureBasic 5.73 erstellt, in welchem es sehr viele Gadgets hat. Beim Verschieben des Fensters mit der Maus tritt eine Art Verzögerung auf - das Fenster bewegt sich weiter als es sollte, auch wenn die Maus schon losgelassen wurde. Eine Reduktion der Anzahl Gadgets würde praktisch eine Neuprogrammierung erzwingen.

Mit diesem kleinen Beispielcode ist dieser Effekt einigermassen sichtbar:

Code: Alles auswählen

OpenWindow(0, 50, 50, 1000, 800, "Test")

For i = 0 To 10000
  j = i / 4
  x = StringGadget(#PB_Any,20+j,20+j,100,20,Str(i))
Next i

Repeat
  EventID = WaitWindowEvent(1) 
Until EventID = #PB_Event_CloseWindow

CloseWindow(0)
Das Beispielprogramm soll nur diesen Effekt beim Verschieben des Fensters zeigen.

Wie kann ich dieses Verschieben optimieren ? Ich stelle mir vor, dass nur das Fenster mit Rahmen ohne Inhalt verschoben/dargestellt wird und erst wenn der User die Maustaste loslässt das Fenster neu aufgebaut wird.

Danke für Eure Hilfe.

Gruss

Matthias

Re: Fenster schieben ist verzögert bei sehr vielen Gadgets

Verfasst: 21.02.2022 13:51
von STARGÅTE
Zehntausend Gadgets? Bei mir wird nicht mal das Fenster richtig geladen. Ich bekomme einfach nur "keine Rückmeldung" und ich kann gar nichts machen.
Falls du sowas wie eine Tabelle mit Zellen schreiben willst, ist das der falsche Weg.
Dafür solltest du z.B. ein großes Canvas Gadget nutzen, die Zellen darin "per Hand" schreiben und im Falle einer Änderung dort lokal ein String-Gadget erstellen.

Wofür sind 10000 gleichzeitig aktive Gadget nötig?

Re: Fenster schieben ist verzögert bei sehr vielen Gadgets

Verfasst: 21.02.2022 13:58
von lgb-this
Wie ich geschrieben habe, ist das Beispiel nur da, um die Verzögerung zu zeigen. Die eigentliche Applikation ist mit sehr vielen Registern und vielen verschiedenen Gadgettypen aufgebaut.

Das Beispielprogramm braucht einen Moment, um die Gadgets aufzubauen. Anschliessend kann man das Fenster schieben und schliessen.

Re: Fenster schieben ist verzögert bei sehr vielen Gadgets

Verfasst: 22.02.2022 00:31
von mk-soft
Das ist kein PureBasic problem sondern eine Einschränkung von Windows.
Eher ein Konstruktionsfehler von dein Programm.

Re: Fenster schieben ist verzögert bei sehr vielen Gadgets

Verfasst: 24.02.2022 08:06
von kpeters58
Ich muß den anderen vor mir beipflichten: Dein Ansatz ist mit ziemlicher Sicherheit 'sub-optimal' - da Du uns keinen Screenshot zeigst, aus dem hervorgeht, was Du eigentlich machen willst, kann man dazu eigentlich nicht mehr viel sagen.

Wenn Du das Forum nach 'Deflicker' durchsuchst, findest Du eine Routine, die hervorragende Dienste beim Resizen von PB Windows leistet. Keine Ahnung, ob die in Deinem Fall hilfreich sein könnte...