Buscar

Desenhando com tipos diferentes de linhas

Código

{O Windows permite desenhar linhas onde cada pixel é outro tipo de primitiva ou desenho com a função LineDDA. Ela precisa de uma função "callback", que será chamada quando um pixel deve ser desenhado. Ali podem ser postas as rotinas de desenho. A rotina a seguir desenha um retângulo a cada 4 pixels:}

TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
public
DrawNow : Integer;
end;
 
var
Form1: TForm1;
 
procedure DrawPoint(x,y : Integer;lpData : LParam); stdcall;
 
implementation
 
{$R *.DFM}
 
procedure DrawPoint(x,y : Integer;lpData : LParam);
begin
with TObject(lpData) as TForm1 do begin
if DrawNow mod 4 = 0 then
Canvas.Rectangle(x-2,y-2,x+3,y+3);
Inc(DrawNow);
end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
DrawNow := 0;
end;
 
procedure TForm1.FormPaint(Sender: TObject);
begin
LineDDA(0,0,Width,Height,@DrawPoint,Integer(Self));
end;
end.

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Imagens
Adicionada dia: 11/06/03
Por: Felipe Monteiro
Visualizada: 2153 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009