AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Flackern von API-Controls verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Flackern von API-Controls verhindern

Ein Thema von silentAMD · begonnen am 14. Aug 2004 · letzter Beitrag vom 28. Dez 2006
Antwort Antwort
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#1

Flackern von API-Controls verhindern

  Alt 14. Aug 2004, 23:13
hi,
wie kann man das flackern von allen api-controls verhindern (inklusive treeview und listview)?


PLEASE HELP!!!!

mfg
  Mit Zitat antworten Zitat
Kernel32.DLL
(Gast)

n/a Beiträge
 
#2

Re: Flackern von API-Controls verhindern

  Alt 14. Aug 2004, 23:46
Hmm...

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



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

Hat mich auch gehelft
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#3

Re: Flackern von API-Controls verhindern

  Alt 15. Aug 2004, 07:07
Was flackert denn?
  Mit Zitat antworten Zitat
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Flackern von API-Controls verhindern

  Alt 15. Aug 2004, 10:43
beim grösser/kleiner machen die listview und die treeview bei meinem filemanager
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Flackern von API-Controls verhindern

  Alt 15. Aug 2004, 11:37
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 ...
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#6

Re: Flackern von API-Controls verhindern

  Alt 15. Aug 2004, 14:27
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.
  Mit Zitat antworten Zitat
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Flackern von API-Controls verhindern

  Alt 15. Aug 2004, 22:12
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???
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#8

Re: Flackern von API-Controls verhindern

  Alt 15. Aug 2004, 22:17
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.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#9

Re: Flackern von API-Controls verhindern

  Alt 15. Aug 2004, 22:20
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. 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.
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Flackern von API-Controls verhindern

  Alt 28. Dez 2006, 22:55
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz