2010-06-22 7 views
1

Contextel'image mise en œuvre du tampon dans delphi

Je dessine une toile, cela est mis à jour régulièrement et il clignote. En pensant logiquement j'ai supposé que c'est parce que ma méthode redessiner efface le canevas puis dessine un élément à la fois sur la toile. donc mon idée était d'écrire à un Timage puis de mettre l'image au Timage.


Informations

ici est mon code

procedure Tmainwindow.Button3Click(Sender: TObject); 
var bufferpicture:TImage; 
begin 

//draw stuff to bufferpicture 
    //*** 
//draw stuff to bufferpicture 

myrealpicture.picture:=bufferpicture.picture; 

end; 

Après l'exécution du code, je reçois un spectacle d'erreur ci-dessous. alt text


Question Comment puis-je mettre la toile d'un à l'autre depuis la toile est une propriété en lecture seule? ou y a-t-il une meilleure façon de faire ce que j'essaie de faire?

Répondre

5
  1. Il semble que vous n'avez pas créé myrealpicture
  2. Je voudrais utiliser la méthode Assign

    MyRealPicture.Picture.Assign(BufferPicture.Picture);

  3. Vous pouvez copier le contenu d'une toile à l'autre en utilisant BitBlt:

    var 
        BackBuffer: TBitmap; 
    begin 
        BackBuffer := TBitmap.Create; 
        try 
        { drawing stuff goes here} 
        BitBlt(Form1.Canvas.Handle, 0, 0, BackBuffer.Width, BackBuffer.Height, 
         BackBuffer.Canvas.Handle, 0, 0, SRCCOPY); 
        finally 
        BackBuffer.Free; 
        end; 
    end; 
    
  4. Vous pouvez simplement utiliser la propriété DoubleBuffered

3

utiliser la propriété DoubleBuffered