各位神仙,你们好!
哪位知道录入汽车号牌的控件,实现对汉字的选择,对字母及数字的选择。
目前的号牌排列很乱,不知道有没有这方面好的控件啊,急用

解决方案 »

  1.   

    unit Win_BusNo;interfaceuses
      windows, Messages, SysUtils, Classes, Graphics,
      Controls, Forms, Dialogs, ADODB, StdCtrls, Buttons, ExtCtrls;
    type TMyEvent = procedure(Sender: TObject) of object;type
      TForm_BusNo = class(TForm)
        CB_CH: TComboBox;
        Label1: TLabel;
        Panel1: TPanel;
        BitBtn1: TBitBtn;
        BitBtn2: TBitBtn;
        Label2: TLabel;
        procedure BitBtn2Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure GetBtCaption(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
        procedure FormActivate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;const
      StrCount = 67;
    var
      Form_BusNo: TForm_BusNo;  ABtnCapTion: array[0..StrCount] of string = (
        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
        '-', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'I', 'K', 'L', 'M',
        'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
        '晋', '蒙', '京', '津', '沪', '渝', '冀', '豫', '鲁', '辽', '吉',
        '黑', '苏', '浙', '皖', '闽', '赣', '粤', '琼', '川', '贵', '云',
        '陕', '甘', '青', '藏', '桂', '宁', '新', '鄂', '湘');
    implementationuses SysDM;{$R *.DFM}procedure TForm_BusNo.BitBtn2Click(Sender: TObject);
    begin
      Close;
    end;procedure TForm_BusNo.FormCreate(Sender: TObject);
    var
      bt: array[0..StrCount] of TButton;
      i, j, k: integer;
    begin
      for i := 0 to StrCount do
      begin
        bt[i] := TButton.Create(self);
        bt[i].parent := Panel1;
        bt[i].Caption := ABtnCapTion[i];
        bt[i].font.Charset := GB2312_CHARSET;
        bt[i].font.name := '宋体';
        bt[i].Height := 23;
        bt[i].Width := 23;
        bt[i].OnClick := GetBtCaption;    if i >= 37 then
          j := i + 3
        else
          j := i;    k := j mod 10;
        bt[i].Left := 8 + k * 25;
        bt[i].Top := 8 + (j div 10) * 25;
      end;
    end;procedure TForm_BusNo.GetBtCaption(Sender: TObject);
    begin
      if TButton(Sender).Caption > 'Z' then
        CB_CH.Text := TButton(Sender).Caption
      else
        CB_CH.Text := CB_CH.Text + TButton(Sender).Caption;
      CB_CH.SetFocus;
      CB_CH.SelStart := length(CB_CH.Text);
    end;procedure TForm_BusNo.BitBtn1Click(Sender: TObject);
    var
      i: integer;
    begin
      if Trim(CB_CH.Text) <> '' then
      begin
        for i := 0 to CB_CH.Items.Count - 1 do
        begin
          if CB_CH.Text = CB_CH.Items[i] then
            break;
        end;
        if i = CB_CH.Items.Count then
          CB_CH.Items.Add(CB_CH.Text);
      end;
    end;procedure TForm_BusNo.FormActivate(Sender: TObject);
    begin
      CB_CH.Text := '';
    end;end.