procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key in ['0'..'9'] then begin key := #0; showmessag('不能为数字'); end; end;
procedure TForm3.Edit3KeyPress(Sender: TObject; var Key: Char); begin if key in ['0'..'9'] then begin key:=#0; messageDlg('输入不能为数字',mtError,[mbok],0); end; end;我也是这样写的,但是程序对这些无动于衷啊
procedure TForm3.Edit3KeyPress(Sender: TObject; var Key: Char); begin //限制输入数字 {if (key in ['0'..'9']) then begin key:=#0; end; //方法2 限制输入数字 SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER); } //限制输入中文或英文 if not( key in ['A'..'Z','a'..'z']) then // begin if (Ord(key)<=160) then key:=#0; end; end;
//修改了一下 unit Unit1;interfaceuses 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 Edit1Enter(Sender: TObject); private { Private declarations } procedure WMContextMenu(var msg: TWMContextMenu);message wm_contextmenu; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not( key in ['A'..'Z','a'..'z',#13,#8]) then // 加个后退回车键 begin if (Ord(key)<=160) then key:=#0; end; //SendMessage(Edit1.Handle,wm_paste,0,0);end; procedure TForm1.WMContextMenu(var msg: TWMContextMenu); begin msg.Result := -1; //屏蔽系统菜单,实现禁用Copy,paste end;procedure TForm1.Edit1Enter(Sender: TObject); beginend;end.
begin
if key in ['0'..'9'] then
begin
key := #0;
showmessag('不能为数字');
end;
end;
begin
if key in ['0'..'9'] then
begin
key:=#0;
messageDlg('输入不能为数字',mtError,[mbok],0);
end;
end;我也是这样写的,但是程序对这些无动于衷啊
begin //限制输入数字
{if (key in ['0'..'9']) then
begin
key:=#0; end;
//方法2 限制输入数字
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
} //限制输入中文或英文
if not( key in ['A'..'Z','a'..'z']) then //
begin
if (Ord(key)<=160) then
key:=#0;
end;
end;
unit Unit1;interfaceuses
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 Edit1Enter(Sender: TObject);
private
{ Private declarations }
procedure WMContextMenu(var msg: TWMContextMenu);message wm_contextmenu; public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if not( key in ['A'..'Z','a'..'z',#13,#8]) then // 加个后退回车键
begin
if (Ord(key)<=160) then
key:=#0;
end;
//SendMessage(Edit1.Handle,wm_paste,0,0);end;
procedure TForm1.WMContextMenu(var msg: TWMContextMenu);
begin msg.Result := -1; //屏蔽系统菜单,实现禁用Copy,paste
end;procedure TForm1.Edit1Enter(Sender: TObject);
beginend;end.
我得思路是
if not( key in ['A'..'Z','a'..'z',#13,#8])
先允许输入英文(大小写)和回车及后退键
然后再判断输入是否中文
(中文是由英文键组成)