zoukankan      html  css  js  c++  java
  • delphi 生成验证码

    procedure TFormTwo.Button1Click(Sender: TObject);
    begin
      if LowerCase(Edit1.Text) = LowerCase(str) then
      begin
        ShowMessage('验证码正确!');
      end
      else
      begin
        ShowMessage('验证码错误');
      end;
    end;
    
    procedure TFormTwo.Button2Click(Sender: TObject);
    begin
      str := DrawImg(Image1);
    end;
    
    function TFormTwo.DrawImg(img: TImage): string;
    var
      I,j,k:   Integer;
      vPoint:   TPoint;
      vLeft:   Integer;
      arrStr:array [1..62]of string ;
      strResult: string;
    begin
      strResult := '';
      arrStr[1] := '0';  arrStr[2]:='1';  arrStr[3]:='2';  arrStr[4]:='3';
      arrStr[5] := '4';  arrStr[6]:='5';  arrStr[7]:='6';  arrStr[8]:='7';
      arrStr[9] := '8';  arrStr[10]:='9'; arrStr[11]:='A'; arrStr[12]:='B';
      arrStr[13] := 'C'; arrStr[14]:='D'; arrStr[15]:='E'; arrStr[16]:='F';
      arrStr[17] := 'G'; arrStr[18]:='H'; arrStr[19]:='I'; arrStr[20]:='J';
      arrStr[21] := 'K'; arrStr[22]:='L'; arrStr[23]:='M'; arrStr[24]:='N';
      arrStr[25] := 'O'; arrStr[26]:='P'; arrStr[27]:='Q'; arrStr[28]:='R';
      arrStr[29] := 'S'; arrStr[30]:='T'; arrStr[31]:='U'; arrStr[32]:='V';
      arrStr[33] := 'W'; arrStr[34]:='X'; arrStr[35]:='Y'; arrStr[36]:='Z';
      arrStr[37] := 'a'; arrStr[38]:='b'; arrStr[39]:='c'; arrStr[40]:='d';
      arrStr[41] := 'e'; arrStr[42]:='f'; arrStr[43]:='g'; arrStr[44]:='h';
      arrStr[45] := 'i'; arrStr[46]:='j'; arrStr[47]:='k'; arrStr[48]:='l';
      arrStr[49] := 'm'; arrStr[50]:='n'; arrStr[51]:='o'; arrStr[52]:='p';
      arrStr[53] := 'q'; arrStr[54]:='r'; arrStr[55]:='s'; arrStr[56]:='t';
      arrStr[57] := 'u'; arrStr[58]:='v'; arrStr[59]:='w'; arrStr[60]:='x';
      arrStr[61] := 'y'; arrStr[62]:='z';
      For j:=1 to 4  do
      begin
        Randomize;
        k := strtoint(Format('%.1d',[Random(62)]));
        strResult := strResult + trim(arrStr[k])
      end;
      vLeft := 10;
      img.picture := nil;
      for I := 1 to Length(strResult) do
      begin
        with Img do
        begin
          Canvas.Font.Size := Random(10)+ 9;
          Canvas.Font.Color := RGB(Random(256) and $C0,
          Random(256) and $C0, Random(256) and $C0);
          if Random(2)=1 then
            Canvas.Font.Style := [fsBold]
          else Canvas.Font.Style := [];
          begin
            Canvas.Font.Name := Screen.Fonts[10];
            vPoint.X := Random(4)+ vLeft;
            vPoint.Y := Random(5);
            Canvas.TextOut(vPoint.X, vPoint.Y,strResult[I]);
            vLeft := vPoint.X + Canvas.TextWidth(strResult[I]);
          end;
        end;
      end;
      result := strResult;    //返回值
    end;
    
    procedure TFormTwo.FormCreate(Sender: TObject);
    begin
      str := DrawImg(Image1);
    end;
  • 相关阅读:
    http与https的区别以及https的加密原理
    android 网络之 httppost
    android 定时器与Canvas结合使用
    逛超市遇到问题了还是好心人多
    获取最新前十篇文章
    做菜 蒸鸡蛋
    使用ASP.NET 2.0 Profile存储用户信息_1[翻译] Level 200
    ajax 笔记不用刷新实现数据的分页显示 2 (上)
    在人力资源树当中,上级对下级员工信息查看修改操作。
    今年入冬于来的第一场雪
  • 原文地址:https://www.cnblogs.com/yangxuming/p/13273980.html
Copyright © 2011-2022 走看看