Podemos utilizar a função abaixo para criar Captcha nos formulários que necessitam de um validação extra, dificultando a utilização de robôs no sistema.
// Adicione ao form uma TImage
// Uses ExtCtrls
function TForm1.GetCaptcha(Img: TImage;
Num_Caracteres: Integer): String;
var
Chars, Captcha: String;
I, X, y, Tamanho, Espaco, Cor: Integer;
begin
Randomize;
Chars := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz';
y := 6;
X := 10;
Tamanho := 18;
Espaco := 30;
Cor := 5999857;
// Preparando o TImage.
with (Img) do
begin
Refresh;
Canvas.LineTo(10, 20);
Picture.Bitmap := nil;
Canvas.Brush.Color := $00F7F8F9;
Canvas.Pen.Color := $00F7F8F9;
Canvas.Rectangle(0, 0, Width, Height);
end;
// Selecionando os caracteres.
Captcha := '';
for I := 0 to Num_Caracteres do
begin
Captcha := Captcha + Copy(Chars, Random(length(Chars)), 1);
end;
// Desenhando os caracteres.
for I := 1 to length(Captcha) - 1 do
begin
with (Img) do
begin
Canvas.Font.Size := Random(Tamanho) + 15;
Canvas.Font.Color := Random(Cor);
Canvas.Font.Name := 'Arial';;
Canvas.Font.Style := Canvas.Font.Style + [fsBold];
Canvas.TextOut(X, Random(y), Copy(Captcha, I, 1));
end;
inc(X, Espaco);
// Criando os traços do Capcha.
with (Img) do
begin
Canvas.Pen.Width := 3;
Canvas.Pen.Color := Random(Cor);
Canvas.LineTo(Random(250), Random(200));
Canvas.LineTo(Random(250), Random(200));
end;
end;
// Retorna o código para validação
result := Copy(Captcha, 1, length(Captcha) - 1);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetCaptcha(Image1, 4);
end;
Gostou? Deixe seu comentário... Convido você a seguir meu blog, sua presença é bem vinda!【ツ】
Gostei não kkk
ResponderExcluiressa coisa Captcha enche a paciências, virou moda principalmente aquela porcaria do google o inferno kk
Brincadeira, não leva mal não,
mas não gosto mesmo de jeito nenhum kk