seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Você não está conectado. Conecte-se ou registre-se

 » Programação Desktop » Pascal / Delphi » [tutorial] desenhando com canvas (delphi) - 2º parte

[tutorial] desenhando com canvas (delphi) - 2º parte

Ir em baixo  Mensagem [Página 1 de 1]

Kodo no Kami

avatar
master
master
e ae galera continuando o tuto anterior de canvas e delphi, nesse vamos fazer algumas figuras geometricas e algumas coisas a mais, para começar vamos lembrar um pouco do tuto anterior onde usamos o canvas do form e o metodo textOut para escrever um texto, tambem teve o metodo brush.color para mudar a cor de background e o font.color para mudar a cor do texto ou do foreground e alguns outros

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Font.Color := clRed;
   Form1.Canvas.Brush.Color := clGreen;
   Form1.Canvas.TextOut(10,10,'by kodo no kami');
end;

para a gente desenhar uma quadrado ou retangulo usamos o metodo Retangle nele passamos 4 argumentos as duas posições inicial e as duas final, sendo o primeiro argumento é onde vai começar o retangulo para o lado esquerdo, o segundo argumento onde vai começar o retangulo para baixo, o terceiro argumento onde vai terminar o retangulo para esquerda e ultimo onde vai terminar o retangulo para baixo

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Rectangle(50,50,150,150);
end;

[Você precisa estar registrado e conectado para ver esta imagem.]

o exemplo acima é um quadrado com tamanho 100x100 (isso pq o inicio do x é 50 e o fim do x é 150 entao 150 - 50 = 100, o y tambem é 100)

[Você precisa estar registrado e conectado para ver esta imagem.]

sim kodo mais pq isso é importante? , no caso se voce tiver que fazer um quadrado com tamanho especifico voce precisa fazer umas contas exemplo se seu retangulo começa em 120 e 130 e ele vai ter o tamanho de 130x120 entao o final dele vai ser em?, voltando para o canvas com o metodo brush.color podemos escolher a cor de fundo

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Brush.Color := clred;
   Form1.Canvas.Rectangle(120,130,250,250);
end;

[Você precisa estar registrado e conectado para ver esta imagem.]

podemos criar um objeto TRect, usar os atributos  left, right, top e bottom para definir o inicio e fim de x e y (sendo o inicio de x é o left e o fim right, e o inicio de y sendo o top e o fim bottom), depois passar ele como argumento para  o metodo

Código:
procedure TForm1.FormPaint(Sender: TObject);
var kodoquad: TRect;
begin
   kodoquad.Left := 100;
   kodoquad.Right := 200;
   kodoquad.Top := 100;
   kodoquad.Bottom := 200;
   Form1.Canvas.Rectangle(kodoquad);
end;

outra forma seria usar typecast com o rect para passar os argumentos e converter para TRect isso dinamicamente (porem fazer isso no metodo Rectangle nao é necessario ja que ele ja tem os argumentos para passar, entao isso so seria util em alguma função que aceite apenas objeto TRect e a gente precise criar dinamicamente)

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Rectangle(Rect(100,100,200,200));
end;

um outro metodo que permite criar retangulo é o FillRect, a diferença entre o metodo FillRect e Rectangle é que o fillrect so aceita como argumento o objeto TRect, outra diferença que ele nao existe linhas para separar entao é necessario usar cor de fundo nele

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Brush.Color := clBlue;
   Form1.Canvas.FillRect(Rect(100,100,300,300));
end;

[Você precisa estar registrado e conectado para ver esta imagem.]

podemos desenhar um quadrado mais arredondado com o metodo RoundRect, esse metodo sao 6 argumentos sendo os 4 primeiros argumentos tem a mesma utilidade do metodo rectangle e os dois ultimos a curvatura dos lados e de cima

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.RoundRect(100,100,200,200,10,10);
end;

[Você precisa estar registrado e conectado para ver esta imagem.]

podemos fazer um circulo com aquele metodo  bastando aumentar o numero da curvatura (embora esse metodo nao seja o unico para fazer isso existem outros ate mais especificos)

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.RoundRect(100,100,200,200,100,100);
end;

[Você precisa estar registrado e conectado para ver esta imagem.]

bom galera esse tuto vai ter mais algumas partes, ate a proxima ^^

by kõdo no kami

http://endoffile.umforum.net

Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum