//让 Edit 只接受数字,通过编辑Edit控件的onKeyPress事件实现
//方法1:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9']) then //如果不是输入数字,
Key:=Char(0); //将当作没输入字符处理
end;
procedure TForm1.Button1Click(Sender: TObject); //清空
begin
Edit1.Clear;
end;
end.
//方法2:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Byte(Key) in [48..57]) then // 0的 Ascii 是 48
Key := Chr(0);
end;
//方法3:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not CharInSet(Key, ['1'..'5']) then Key := #0;
end;

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.SetFocus;
SendMessage(Edit2.Handle,EM_SETSEL,0,1); //选择第一个字符
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit2.SetFocus;
SendMessage(Edit2.Handle,EM_SETSEL,0,-1); //全选
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit2.SetFocus;
SendMessage(Edit2.Handle,EM_SETSEL,1,1); //光标移到第一个字符后面
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Edit2.SetFocus;
SendMessage(Edit2.Handle,EM_SETSEL,0,0); //光标移到开始
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Edit2.SetFocus;
SendMessage(Edit2.Handle,EM_SETSEL,-1,0); //光标移到最后一个字符后面
end;
end.