1. inserir componentes no form: image1 e edit1.
2. criar essa variavel global para acolher o valor correto.
var
valor_captcha: string;
3. criar essa rotina para gerar o captcha:
function rtngerar_imagem_captcha(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;
como usar:
no momento que for gerado a imagem, enviar o retorno para a variavel global.
valor_captcha:= rtngerar_imagem_captcha(Image1);
agora poderemos fazer uma verificacao se o valor digitado no edit1 eh o mesmo.
begin
if (Edit1.Text = valor_captcha) then
showmessage('ok')
else
showmessage('falhou');
end;
Parabéns! Teu Blog é muito bom sempre venho aqui conferir as novidades. O delphi realmente faz milagres D:
ResponderExcluir