Flackern von Gadgets verhindern

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Flackern von Gadgets verhindern

Beitrag von Delle »

Hallo,

kann man irgendwie das Geflackere von Gadgets verhindern, wenn diese gezeichnet bzw. mit ResizeGadget() bearbeitet werden?

Aktuell lass ich paar ImageGadgets in einem ScrollAreaGadgets einzeichnen und das flackert ganz schön...

War das früher in PB nichtmal so, dass man jedes Mal per WindowCallback()? neuzeichnen MUSSTE und dies jetzt immer automatisch geschieht?

Was gibt's für Möglichkeiten für Anti-Flackerei? :) Sowas in der Art wie DoubeBuffer/FlipBuffer... aber eben nur für normale Windows..

Danke,
Delle
PB 6.21 | Win 11
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Flackern von Gadgets verhindern

Beitrag von RSBasic »

Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Flackern von Gadgets verhindern

Beitrag von Delle »

SetWindowLongPtr_(WindowID(0), #GWL_STYLE, GetWindowLongPtr_(WindowID(0), #GWL_STYLE) | #WS_CLIPCHILDREN | #WS_CLIPSIBLINGS)

Probiert... hat leider gar keinen Effekt gezeigt :(
PB 6.21 | Win 11
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Flackern von Gadgets verhindern

Beitrag von ts-soft »

Gadget disablen, Bild rein und dann wieder enablen.
oder mit #WM_SETREDRAW probieren.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Flackern von Gadgets verhindern

Beitrag von Danilo »

Delle hat geschrieben:SetWindowLongPtr_(WindowID(0), #GWL_STYLE, GetWindowLongPtr_(WindowID(0), #GWL_STYLE) | #WS_CLIPCHILDREN | #WS_CLIPSIBLINGS)

Probiert... hat leider gar keinen Effekt gezeigt :(
Das solltest Du für Dein ScrollAreaGadget setzen, wenn es darin flackert.

Dann gibt es noch SendMessage mit #WM_SETREDRAW, entweder fürs Hauptfenster
oder wieder für die ScrollArea. Neuzeichnen verhindern, alles resizen, neuzeichnen wieder
erlauben und dann neuzeichnen lassen (InvalidateRect).

Ohne Code nix los. ;)

EDIT: and the winner is... ts-soft :D
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Flackern von Gadgets verhindern

Beitrag von ts-soft »

Danilo hat geschrieben:Ohne Code nix los. ;)
Irgendwann wird auch der letzte kapiert haben, das richtige Hilfe ohne ausführbaren Code, nur selten möglich ist.
Danilo hat geschrieben:EDIT: and the winner is... ts-soft :D
:lol:

// edit
SmartWindowRefresh() hilft manchmal auch (flackern beim resizen).
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: Flackern von Gadgets verhindern

Beitrag von c4s »

Vielleicht bringt auch SmartWindowRefresh() etwas...
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Flackern von Gadgets verhindern

Beitrag von Delle »

Hm... also alle Tipps beziehen sich mehr aus die Flackerbeseitigung durch Resizing von FENSTERN.

Da mag das vllt alles schön funktionieren, aber sonst nicht.
PB 6.21 | Win 11
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Flackern von Gadgets verhindern

Beitrag von ts-soft »

Delle hat geschrieben:Hm... also alle Tipps beziehen sich ...
Die können sich gar nicht beziehen, Dein Beispielcode, der das Problem nachvollziehbar macht,
fehlt. Langsam solltest aber ... :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Flackern von Gadgets verhindern

Beitrag von Delle »

Beispielcode? Ähm... einfach untereinander paar ImageGadgets in ein ScrollAreaGadget zeichnen lassen (und wenn möglich immer auch gleich ans Ende mitspringen beim Zeichnen).

Das hier hat auch nicht funktioniert:

Code: Alles auswählen

SendMessage_(GadgetID(#ScrollAreaGadget),#WM_SETREDRAW,0,0)

(drawing/resizing)

SendMessage_(GadgetID(#ScrollAreaGadget),#WM_SETREDRAW,1,0)
PB 6.21 | Win 11
Antworten