图片数字控件,DELPHI中有没有这个控件呀
http://www.wangmeng.cn/Article/UploadFiles/200709/20070923192513217.jpg

解决方案 »

  1.   

    unit1.dfm的内容如下:object Form1: TForm1
      Left = 342
      Top = 96
      Width = 363
      Height = 231
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
      object Image1: TImage
        Left = 200
        Top = 40
        Width = 73
        Height = 25
        OnClick = Image1Click
      end
      object Button2: TButton
        Left = 128
        Top = 104
        Width = 75
        Height = 25
        Caption = #39564'     '#35777
        TabOrder = 0
        OnClick = Button2Click
      end
      object Edit1: TEdit
        Left = 48
        Top = 40
        Width = 121
        Height = 25
        TabOrder = 1
      end
    endunit1.pas的内容如下unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, Buttons;type
      TForm1 = class(TForm)
        Image1: TImage;
        Button2: TButton;
        Edit1: TEdit;
        procedure Button2Click(Sender: TObject);
        procedure Image1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        procedure PwdImg(img:Timage);
      end;var
      Form1: TForm1;
      pwdimgstr : string;implementation{$R *.dfm}
    procedure TForm1.PwdImg(img:Timage);
    var
      I,j,k:   Integer;
      vPoint:   TPoint;
      vLeft:   Integer;
      arrStr:array [1..36]of string ;
    begin
      pwdimgstr:='';
      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';
      for j:=1 to 4  do
      begin
      Randomize;
      k:=strtoint(Format('%.1d',[Random(36)]));
      pwdimgstr:=pwdimgstr+trim(arrStr[k])
      end;
      vLeft:=10;
      img.picture:=nil;
      for I:= 1 to Length(pwdimgstr) 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,pwdimgstr[I]);
            vLeft := vPoint.X + Canvas.TextWidth(pwdimgstr[I]);
          end;
        end;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin  if trim(edit1.Text)<>trim(pwdimgstr) then
      begin
        showmessage('验证码不正确');
        PwdImg(image1);
      end
      else
        showmessage('正确');
    end;procedure TForm1.Image1Click(Sender: TObject);
    begin
      PwdImg(image1);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      PwdImg(image1);
    end;end.
      

  2.   

    谢谢pilicat
    我找到控制位数
    for j:=1 to 4  do