|
Вопрос # 6 129/ вопрос решён / |
|
Доброго времени суток, уважаемые эксперты!
есть капча с цифрами, как к ней добавить цифры? максимальное значение 6, но можно и 8
Приложение: Переключить в обычный режим- type
- TForm1 = class(TForm)
- Image1: TImage;
- Button1: TButton;
- EditCaptcha: TEdit;
- procedure Button1Click(Sender: TObject);
- procedure FormShow(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- procedure Captcha_(Code: Integer);
- procedure SetCaptcha_;
- function TestCaptcha(C: String): Boolean;
- end;
-
- var
- Form1: TForm1;
-
- CurCod: Integer;
-
- implementation
-
- {$R *.dfm}
-
- procedure TForm1.Captcha_(Code: Integer);
- const
- lines = 6;
- var
- x,y,g : integer;
- str : string;
- begin
- Image1.Canvas.Brush.Color := clWhite;
- Image1.Canvas.Brush.Style := bsSolid;
- Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
- if (Code < 99999) or (Code > 1000000) then
- Image1.Canvas.TextOut(4,4,\'INVALID CODE\');
- for x := 0 to Image1.Width - 1 do
- for y := 0 to Image1.Height - 1 do
- if Random(1000) mod 2 = 0 then begin
- g := Random(100)+100;
- Image1.Canvas.Pixels[x,y] := rgb(g,g,g);
- end;
- Image1.Canvas.Brush.Style := bsClear;
-
- for x := 1 to 6 do begin
- g := Random(100)+100;
- case Random(3) of
- 0 : Image1.Canvas.Font.Color := rgb(g,0,0);
- 1 : Image1.Canvas.Font.Color := rgb(0,g,0);
- 2 : Image1.Canvas.Font.Color := rgb(0,0,g);
- end;
-
- case random(2) of
- 0 : Image1.Canvas.Font.Style := [fsBold];
- 1 : Image1.Canvas.Font.Style := [];
- end;
-
- Image1.Canvas.Font.Size := 15 + Random(6);
- Image1.Canvas.TextOut((x-1)*15+10, random(image1.Height-Image1.Canvas.TextHeight(\'1\')),
IntToStr(Code)[x]);
- end;
-
- Image1.Canvas.Pen.Color := clBlack;
-
- for x := 0 to lines - 1 do begin
- Image1.Canvas.MoveTo(0, Random(Image1.Height));
- Image1.Canvas.LineTo(Image1.Width, Random(Image1.Height));
- end;
- end;
-
- procedure TForm1.SetCaptcha_;
- begin
- Randomize;
- CurCod := Random(899999) + 100000;
- Captcha_(CurCod);
- end;
-
- function TForm1.TestCaptcha(C: String): Boolean;
- begin
- Result := IntToStr(CurCod) = C;
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- if(not(TestCaptcha(EditCaptcha.Text))) then begin
-
- EditCaptcha.Clear;
- SetCaptcha_;
- Exit;
- end;
- end;
-
- procedure TForm1.FormShow(Sender: TObject);
- begin
- SetCaptcha_;
- end;
 |
Вопрос задал: casio (статус: Посетитель)
Вопрос отправлен: 12 мая 2012, 23:09
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 14 мая 2012, 15:53; участников в обсуждении: 2.
12 мая 2012, 23:43: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Лабораторный практикум » Delphi модератором DNK
|
min@y™ (статус: Доктор наук), 13 мая 2012, 10:03 [#1]:
Приятно удивляет сплошное изобилие комментариев в коде! Сразу понятно, что этот код делает, читать такой код - одно удовольствие. Неоднократный вызов Randomize() вызывает приятные судороги, а дефолтные имена переменных (Form1, Image1, Button1) - приятные рвотные позывы.
Чел! ЧТО, Б***ТЬ, ДЕЛАЕТ ЭТОТ КОД???!!!11 Рисует капчу на канвасе или распознаёт её?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
casio (статус: Посетитель), 13 мая 2012, 16:32 [#2]:
min@y™: Б***ТЬ, рисует капчу на канвасе и распознаёт её!
|
|
casio (статус: Посетитель), 13 мая 2012, 17:02 [#3]:
извеняюсь вопрос не так задал, уже засыпал на ходу, там цифры есть,нужно добавить буквы
|
|
casio (статус: Посетитель), 13 мая 2012, 17:21 [#4]:
все разобрался )
|
13 мая 2012, 17:21: Статус вопроса изменён на решённый (изменил автор вопроса — casio)
|
min@y™ (статус: Доктор наук), 13 мая 2012, 22:10 [#5]:
Вот шо животворящий русский мат делает!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|