Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Flackern von API-Controls verhindern (https://www.delphipraxis.net/27739-flackern-von-api-controls-verhindern.html)

silentAMD 14. Aug 2004 23:13


Flackern von API-Controls verhindern
 
hi,
wie kann man das flackern von allen api-controls verhindern (inklusive treeview und listview)?


PLEASE HELP!!!!

mfg

Kernel32.DLL 14. Aug 2004 23:46

Re: Flackern von API-Controls verhindern
 
Hmm...

Du brauchst anscheinend sowas wie "DoubleBuffered" für non-vcl.

:gruebel:

Frag am besten Mr. NonVCl (Luckie) oder guck' dir auf seiner Seite das Win32Api-Tut an.

Hat mich auch gehelft :stupid:

MathiasSimmack 15. Aug 2004 07:07

Re: Flackern von API-Controls verhindern
 
Was flackert denn?

silentAMD 15. Aug 2004 10:43

Re: Flackern von API-Controls verhindern
 
beim grösser/kleiner machen die listview und die treeview bei meinem filemanager

MathiasSimmack 15. Aug 2004 11:37

Re: Flackern von API-Controls verhindern
 
Ist es möglich, dass du die Nachricht WM_SIZE bearbeitest und irgendwelchen Code ausführst? Eine andere Erklärung habe ich nämlich nicht. Wenn ich mir die Demos aus den Tutorials ansehe (Tree-View, List-View, Splitter ;)), dann flackert da nichts ...

w3seek 15. Aug 2004 14:27

Re: Flackern von API-Controls verhindern
 
du musst im prinzip das control subclass'en und die WM_ERASEBKGND message abfangen, die dafuer verantwortlich ist, das control komplett einmal mit der standard fensterfarbe (COLOR_WINDOW) zu ueberzeichnen. Das ist das was das flackern verursacht. Danach sollte das Flackern weg sein.

silentAMD 15. Aug 2004 22:12

Re: Flackern von API-Controls verhindern
 
Zitat:

Ist es möglich, dass du die Nachricht WM_SIZE bearbeitest und irgendwelchen Code ausführst? Eine andere Erklärung habe ich nämlich nicht. Wenn ich mir die Demos aus den Tutorials ansehe (Tree-View, List-View, Splitter Wink), dann flackert da nichts ...
erfasst! nee aber vielleicht hast du die "zeige beim verschieben den fensterinhalt"-option ausgeschaltet. schalte sie mal ein und guck dir die demo an!


@w3seek: würdest du evtl. mir was simples coden, das deine vorgehensweise zeigt??? :angel2:

w3seek 15. Aug 2004 22:17

Re: Flackern von API-Controls verhindern
 
Ich kann dir nicht versprechen ob ich heut noch Lust dazu hab, wenn ja dann stell ichs heute nacht hier rein, ansonsten morgen nachmittag irgendwann.

MathiasSimmack 15. Aug 2004 22:20

Re: Flackern von API-Controls verhindern
 
Zitat:

Zitat von silentAMD
nee aber vielleicht hast du die "zeige beim verschieben den fensterinhalt"-option ausgeschaltet.

Stimmt. Alte Angewohnheit aus der Zeit, als mein PC noch mit Dampf betrieben wurde. :mrgreen: Nein, ernsthaft; ich habe allen grafischen Schnickschnack deaktiviert. Fenster-Animationen usw.

Zitat:

schalte sie mal ein und guck dir die demo an!
Aha. Okay, es flackert ein bisschen. Beim Windows Explorer flackert beim gleichen Test zwar nicht die List-View, dafür aber die Combobox mit der aktuellen Pfadangabe. ;)

semo 28. Dez 2006 22:55

Re: Flackern von API-Controls verhindern
 
kleiner nachtrag:

beim erzeugen von windows per createwindowex() kann man das aus der vcl bekannte doublebuffered mit der angabe von dwExStyle = WS_EX_COMPOSITED erreichen

Zitat:

Windows XP: Paints all descendants of a window in bottom-to-top painting order using double-buffering. For more information, see Remarks. This cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz