zoukankan      html  css  js  c++  java
  • 简单的 "双缓冲" 绘图的例子(研究一下)

    所谓双缓冲就是先画到内存画布(如: TBitmap), 然后再转帖到目的地.

    譬如下面小程序:


    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Interval := 100;
      Color := clWhite;
    end;
    
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Canvas.Pen.Color := Random($FFFFFF);
      Canvas.MoveTo(Random(ClientWidth), Random(ClientHeight));
      Canvas.LineTo(Random(ClientWidth), Random(ClientHeight));
    end;


    改为双缓冲绘图可以是:


    var
      bit: TBitmap;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Interval := 100;
      bit := TBitmap.Create;
      bit.Width := ClientWidth;
      bit.Height := ClientHeight;
    end;
    
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      bit.Canvas.Pen.Color := Random($FFFFFF);
      bit.Canvas.MoveTo(Random(bit.Width), Random(bit.Height));
      bit.Canvas.LineTo(Random(bit.Width), Random(bit.Height));
      Self.Canvas.Draw(0, 0, bit);
    end;
    
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
      bit.Free;
    end;

    http://www.cnblogs.com/del/archive/2010/04/19/1715779.html

  • 相关阅读:
    zip
    sublime 3 注册码
    css3 文本控制自动换行
    ST3 package control
    cf1139D-Steps to One
    2019-2020 ACM-ICPC, Asia Xuzhou Regional Contest
    2018-2019 ACM-ICPC, Asia Jiaozuo Regional Contest
    Tree
    B
    多源对多源最短路
  • 原文地址:https://www.cnblogs.com/findumars/p/5342735.html
Copyright © 2011-2022 走看看