Entwickler-Ecke

Multimedia / Grafik - doublebuffered unter d3


knuffel - Mo 22.12.03 14:34
Titel: doublebuffered unter d3
Hi ! :roll:

unter d6 + d7 bekam ich das flimmern v. objekten, wenn sie auf der form verschoben werden, immer mit


Delphi-Quelltext
1:
form1.DoubleBuffered:=true;                    


weg. Nu wollt ich das mit d3 machen, aber hier ist diese methode unbekannt.
wie lautet die syntax f. d3 od. was kann ich alternativ da machen ?

thanx, knuffel


Gandalfus - Mo 22.12.03 15:14

alles zeichnen erfolgt auf einem Hintegrund bild


Delphi-Quelltext
1:
2:
var 
  backpuffer: TBitmap


das bild muss noch erstellt werden:


Delphi-Quelltext
1:
2:
3:
backpuffer := TBitmap.create;
backpuffer.width := XXX; 
backpuffer.height := XXXX:


alle zeichen operationen erfolgen jetzt auf diesem backbild

z.B.: Backpuffer.canvas.pixels[10,10] :)= clred;

noch abschluss aller zeichen operationen wird das gesamte bild auf den BIldschirm(Formular) kopiert


Delphi-Quelltext
1:
BitBlt(Form1.canvas.handle,0 ,0 ,backpuffer.width ,backpuffer.height ,backpuffer.Canvas.handle,0,0,srccopy)                    


zum besseren verständnis der BitBlt Funktion:
BitBlt(Handle des Zieles,XPosition,YPosition,Breite,Höhe,Handle der Quelle,Position des Ausschnits der kopiert werden sollX,Y,Modus in dem kopiert wird{normal ist srccopy});


FAlter - Do 01.01.04 22:57
Titel: Re: doublebuffered unter d3
knuffel hat folgendes geschrieben:
aber hier ist diese methode unbekannt.


DoubleBuffered ist ein property, also eine Eigenschaft.
Einw Methode wäre procedure oder function.