Einzelnen Beitrag anzeigen

MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#1

Flackern des Formulars verhindern

  Alt 15. Mai 2005, 19:48
Hallo,

wenn ich mit folgendem Code mein Formular auf "AlwaysOnTop" setze, flackert es kurzzeitig auf:
Delphi-Quellcode:
if CheckBox1.Checked then
  Form1.FormStyle := fsStayOnTop
else
   Form1.FormStyle := fsNormal;
nun ist mir kürzlich folgende Variante ins Auge gesprungen, bei der das Formular nicht flackert:
Delphi-Quellcode:
if Checkbox1.Checked then
  SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE)
else
  SetWindowPos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);

Nun stehe ich vor dem gleichen (flackerndem) Problem, beim setzen von AlphaBlending.
Gibt es hierzu auch eine Variante das Flackern zu umgehen ?

Kann mir jemand auserdem noch sagen, woran dies liegt, das es bei einer Anweisung zum flackern kommt, und bei einer anderen nicht ?


gruss Christian

PS:
DoubleBuffered habe ich schon versucht, funktioniert nicht, und da mir die obige (nicht flackernde) Lösung nach nonVCL aussah hab ich auch schon luckie's API-Tutorial durchsucht, leider ohne Erfolg.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat