Entwickler-Ecke
Multimedia / Grafik - Flickern eliminieren
DelphiMan - So 18.05.03 18:52
Titel: Flickern eliminieren
Hallo zusammen,
ich benütze eine Paintbox ich möchte gerne jede sekunde einen ausschnitt der paintbox neuzeichnen (um eben bspw. die aktuelle sekunde graphisch darzustellen). dabei treten leider unerwünschte flicker-effekte auf, obwohl ich auch schon doublebuffered sowie invalidate gesetzt habe. Kennt jemand von euch vielleicht eine wirksame methode flickern bei neuzeichnen eines bereichs zu unterdrücken? Außerdem: wie kann man nur einen ausschnitt der paintbox neuzeichnen, ohne dabei das OnPaint-Eregnis auszulösen?
Vielen Dank im Voraus!
MfG
DelphiMan
Jack Falworth - So 18.05.03 19:28
hI,
also erstmal das mit dem einen Teil neuzeichnen geht nicht. Immer nur die ganze Paintbox. Das Problem hatte ich auch mal.
Besser finde ich, wenn man ein Image benutzt, da wird das Neuzeichnen automatisch gemacht.
Um das Flickern zu verhindern, nimm einfach ne Scrollbox, dann setz ein Image mit derselben Größe in die Scrollbox und setz dann Scrollbox.Doublebuffered auf true. Funktioniert bei meinen Programmen wunderbar.
MfG
Jack Falworth
Kostja - So 18.05.03 19:36
Ich hab das immer so gemacht, dass ich das gewünschte Bild zuerst in eine Bitmap gezeichnet hab und dann dieses Bitmap auf der Image Komponente mittels Draw dargestellt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| var Graph: TBitmap;
implementation
procedure Form1.Create; begin Graph := TBitmap.Create; end;
procedure Zeichen; begin With Graph.Canvas Do begin
Pen.Color:=clBlack; Brush.Color:= clBlack; Rectangle(0,0,w,h); Pen.Color:=clYellow; Brush.Color:=clYellow; Rectangle(vnext,50,vnext+100,150);
end; Image1.Canvas.Draw(0,0,Graph); end; |
Moderiert von
tommie-lie: Delphi-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!