如何使输入框得到焦点且选中文本框

本文介绍了一个简单的登录界面实现方法,重点讲解了如何在输入框获得焦点时自动选中其中的文本,以及如何限制密码输入为数字等内容。

 如何使输入框得到焦点且选中文本框代码如下:

 

unit ULogin;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TfrmLogin = class(TForm)
    lbllUser: TLabel;
    lblPasswd: TLabel;
    edtUser: TEdit;
    edtPasswd: TEdit;
    btnUser: TButton;
    btnCancel: TButton;
    procedure edtUserChange(Sender: TObject);
    procedure edtPasswdKeyPress(Sender: TObject; var Key: Char);
    procedure btnCancelClick(Sender: TObject);
    procedure btnUserClick(Sender: TObject);
    procedure EditMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure EditEnter(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmLogin: TfrmLogin;

implementation

{$R *.dfm}

procedure TfrmLogin.edtUserChange(Sender: TObject);
begin
  if Length(edtUser.Text) = 6 then
  begin
    edtPasswd.SetFocus;
  end;

end;

procedure TfrmLogin.edtPasswdKeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in['1'..'9',#8]) then
  begin
    Key := #0;
    messagebeep(1);
  end;

end;

procedure TfrmLogin.btnCancelClick(Sender: TObject);
begin
    edtUser.Text := '';
    edtPasswd.Text := '';
    edtUser.SetFocus;
end;

procedure TfrmLogin.btnUserClick(Sender: TObject);
begin
  if (edtUser.Text = 'usname') and (edtPasswd.Text = '12345678') then
  begin
    ShowMessage('欢迎进入本系统');
    Close;
  end
  else
  begin
    ShowMessage('用户名或密码错误,请重新输入');
    edtUser.SetFocus;
  end;

end;

procedure TfrmLogin.EditMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  EditEnter(Sender);
end;

procedure TfrmLogin.EditEnter(Sender: TObject);
begin
 if (Sender is TEdit) then
 begin
  (Sender as TEdit).SetFocus;
  (Sender as TEdit).SelectAll;
 end
 else
 begin
   exit;
 end;
end;

procedure TfrmLogin.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 0  to ComponentCount - 1  do
  begin
    if Components[i] is TEdit then
    begin
      (Components[i] as TEdit).OnMouseMove := EditMouseMove;
    end;

  end;

end;

end.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值