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) - 1º parte

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

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

Kodo no Kami

avatar
master
master
e ae galera aqui vai um tutorial de delphi sobre canvas, bom o canvas é forma de desenhar sobre um determinado plano (no caso do delphi sobre o fundo de uma janela), para usar o canvas basta usar o metodo canvas junto ao objeto que no caso é a janela ou form seguido do metodo ou atributo do canvas que vamos usar (eu to usando o evento onpaint do form que cria o desenho quando o form for desenhado)

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

o primeiro metodo que vamos ver do canvas é o TextOut que permite escrever determinado texto (na verdade permite desenhar determinado texto na janela, o componente label do delphi funciona mais ou menos dessa forma), para usar o metodo TextOut temos que especificar tres argumentos a coordenada que sao tipos inteiros que seria um argumento para esquerda e um para baixo (a posição 0,0 seria equivalente ao canto superior esquerdo da janela) e o ultimo argumento seria texto que é uma string

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.TextOut(50,200,'kodo no kami');
end;

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

para a gente mudar a cor temos que usar o atributo Font.Color antes do metodo TextOut, e atribumos a cor podemos usar constantes como clRed, clBlue, clYellow

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
  Form1.Canvas.Font.Color := clBlue;
  Form1.Canvas.TextOut(50,200,'kodo no kami');
end;

ou podemos usar a função rgb para passar o byte equivalente 3 cores para formar a outra

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Font.Color := RGB(200,0,50);
   Form1.Canvas.TextOut(50,200,'kodo no kami');
end;

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

podemos usar os metodos quantas vezes a gente quiser

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Font.Color := clRed;
   Form1.Canvas.TextOut(50,200,'kodo no kami');

   Form1.Canvas.Font.Color := clBlue;
   Form1.Canvas.TextOut(100,100,'hfts315');

   Form1.Canvas.Font.Color := clYellow;
   Form1.Canvas.TextOut(250,280,'vish alguem consegue ler isso');

   Form1.Canvas.Font.Color := clGreen;
   Form1.Canvas.TextOut(0,0,'coordenada 0,0 é aqui');
   Form1.Canvas.TextOut(315,315,'315,315 é aqui');
end;

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

para aumentar a fonte usamos o atributo Fonte.Size

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Font.Size := 50;
   Form1.Canvas.TextOut(50,200,'kodo no kami');
end;

tambem podemos mudar o estilo da fonte com o atributo Font.Name

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Font.Size := 50;
   Form1.Canvas.Font.Name := 'Tahoma';
   Form1.Canvas.TextOut(50,200,'kodo no kami');
end;
[Você precisa estar registrado e conectado para ver esta imagem.]

para mudar cor do fundo usamos o atributo brush.color

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   Form1.Canvas.Brush.Color := clYellow;
   Form1.Canvas.TextOut(50,200,'kodo no kami');
end;

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

ate agora a gente tava usando o form porem existe outros componentes que podemos usar o canvas um deles é o PaintBox da aba System, Image da aba Addtional, PageControl da aba Win32 entre outros, uma das vantagem de usar esses componente que o canvas vai se limita nas coordenada dele

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

tambem podemos usar botao e eventos para desenhar ele de forma mais dinamicas, um exemplo seria esse programa que permite escolher as coordenadas do texto e a cor com base no rgb

Código:
procedure TForm1.btn1Click(Sender: TObject);
var r,g,b: Byte;
    y,x: Integer;
    t: string;
begin
  t := edt1.Text;
  y := StrToInt(edt2.Text);
  x := StrToInt(edt3.Text);
  r := StrToInt(edt4.Text);
  g := StrToInt(edt5.Text);
  b := StrToInt(edt6.Text);
  pb1.Canvas.Font.Color := RGB(r,g,b);
  pb1.Canvas.TextOut(y,x,t);
end;

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

bom galera essa é a primeira parte desse tutorial nas proxima parte vamos aprender desenhar linhas,quadrados, círculos e outras coisas mais dinamicas ^^

by kõdo no kami


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

Contato:
Spoiler:

Contato:
Facebook: [Você precisa estar registrado e conectado para ver este link.]
Skype: hackerfts315
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