Fonte: www.activedelphi.com.br
Gerando imagem para validação de números
Hoje em dia está sendo muito usado a geração de imagens para confirmação de alguma ação. Um exemplo disse é o email da uol, onde você tem uma opção de solicitar a confirmação do envio.
Bom, segue uma função que faz isso:
Hoje em dia está sendo muito usado a geração de imagens para confirmação de alguma ação. Um exemplo disse é o email da uol, onde você tem uma opção de solicitar a confirmação do envio.
Bom, segue uma função que faz isso:
Primeiro adicione no seu form os componentes TButton, TImage e TEdit.
unit Unit1;
interface
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GeraImagem(Img: TImage): string;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GeraImagem(Img: TImage): string;
end;
var
Form1: TForm1;
validapost : string;
implementation
{$R *.dfm}
{ TForm1 }
function TForm1.GeraImagem(Img: TImage): string;
const
f: array [0..4] of string = ('Courier New', 'Impact', 'Times New Roman', 'Verdana', 'Arial');
s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
C : ARRAY [0..14] OF tcOLOR = (clAqua, clBlack, clBlue, clFuchsia, clGray, clGreen, clLime, clMaroon, clNavy, clOlive, clPurple, clRed, clSilver, clTeal, clYellow);
Form1: TForm1;
validapost : string;
implementation
{$R *.dfm}
{ TForm1 }
function TForm1.GeraImagem(Img: TImage): string;
const
f: array [0..4] of string = ('Courier New', 'Impact', 'Times New Roman', 'Verdana', 'Arial');
s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
C : ARRAY [0..14] OF tcOLOR = (clAqua, clBlack, clBlue, clFuchsia, clGray, clGreen, clLime, clMaroon, clNavy, clOlive, clPurple, clRed, clSilver, clTeal, clYellow);
var
i, x, y : integer;
r : string;
begin
randomize;
Img.Width := 160;
Img.Height := 60;
for i := 0 to 3 do
r := r + s[Random(length(s)-1)+1];
with Img.Picture.Bitmap do
begin
width := Img.Width;
Height := Img.Height;
Canvas.Brush.Color := $00EFEFEF;
Canvas.FillRect(Img.ClientRect);
for i := 0 to 3 do
begin
Canvas.Font.Size := random(20) + 20;
Canvas.Font.Name := f[High(f)];
Canvas.Font.Color := c[random(High(c))];
Canvas.TextOut(i*40,0,r[i+1]);
end;
for i := 0 to 2 do
begin
Canvas.Pen.Color := c[random(High(c))];
Canvas.Pen.Width := 2;
canvas.MoveTo(random(Width),0);
Canvas.LineTo(random(Width),Height);
Canvas.Pen.Width := 1;
x := random(Width-10);
y := random(Height-10);
Canvas.Rectangle(x,y,x+10,y+10);
end;
end;
Result := r;
end;
i, x, y : integer;
r : string;
begin
randomize;
Img.Width := 160;
Img.Height := 60;
for i := 0 to 3 do
r := r + s[Random(length(s)-1)+1];
with Img.Picture.Bitmap do
begin
width := Img.Width;
Height := Img.Height;
Canvas.Brush.Color := $00EFEFEF;
Canvas.FillRect(Img.ClientRect);
for i := 0 to 3 do
begin
Canvas.Font.Size := random(20) + 20;
Canvas.Font.Name := f[High(f)];
Canvas.Font.Color := c[random(High(c))];
Canvas.TextOut(i*40,0,r[i+1]);
end;
for i := 0 to 2 do
begin
Canvas.Pen.Color := c[random(High(c))];
Canvas.Pen.Width := 2;
canvas.MoveTo(random(Width),0);
Canvas.LineTo(random(Width),Height);
Canvas.Pen.Width := 1;
x := random(Width-10);
y := random(Height-10);
Canvas.Rectangle(x,y,x+10,y+10);
end;
end;
Result := r;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.Text = validapost) then
Application.MessageBox('Parabéns, muito bem','Sucesso',
MB_OK + MB_ICONINFORMATION);
FormShow(self);
end;
begin
if (Edit1.Text = validapost) then
Application.MessageBox('Parabéns, muito bem','Sucesso',
MB_OK + MB_ICONINFORMATION);
FormShow(self);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
validapost := GeraImagem(Image1);
end;
begin
validapost := GeraImagem(Image1);
end;
end.
Ajudou Mt :)
ResponderExcluirObrigado, sinta-se a vontade para disfrutar do blog.
Excluir