procedure TTicketdeleteForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
//
if( key<='9' )and (key>='0' ) then
exit;
if key=#18 then //当用户输入时有错误,可以用后退键来删除.Backspace的ASCII是多少?
exit //应该不是18吧.
else
key:=#39; //若是其它键,则不输入进去.这句话应该如何写?
procedure TEditSalesForm.Button1Click(Sender: TObject);begin
//
if edit1.SelLength<14 then
begin
showmessage('请确认所输入的券号长度不小于14位!');
edit1.SetFocus;
end; //无论我输入的字符有多长,这个消息框总会显示.
应该改哪里?
begin
//
if( key<='9' )and (key>='0' ) then
exit;
if key=#18 then //当用户输入时有错误,可以用后退键来删除.Backspace的ASCII是多少?
exit //应该不是18吧.
else
key:=#39; //若是其它键,则不输入进去.这句话应该如何写?
procedure TEditSalesForm.Button1Click(Sender: TObject);begin
//
if edit1.SelLength<14 then
begin
showmessage('请确认所输入的券号长度不小于14位!');
edit1.SetFocus;
end; //无论我输入的字符有多长,这个消息框总会显示.
应该改哪里?
//
if Length(Trim(edit1.Text))<14 then
begin
showmessage('请确认所输入的券号长度不小于14位!');
edit1.SetFocus;
end;
end;
setwindowlong(edit1.handle, GWL_Style, GetWindowLong(edit1.handle, GWL_STYLE) or ES_NUMBER)
就可以了。
begin
if not (key in ['0'..'9']) then key:=#0;
end;
如果要防止粘贴的话,还要另外处理。
edit1.SelLength表示你选择的长度。
用 length(edit1.text)
A、用STRTOINT(STRTOFLOAT)函数判断。
B、自定义一个函数来判断。
function IsInt(s:string):boolean;
//查询当前数据是否数字型;
var i:integer;
pValue:pchar;
begin
result:=false;
pValue:=StrPch(trim(s));
for i:=0 to length(s)-1 do
begin //for loop ;
if pValue[i] in ['0','1','2','3','4','5','6','7','8','9'] then
result:=true
else
begin
result:=false;
exit;
end;
end; //for loop;
end;
setwindowlong????
我查了DELPHI帮助,没这个东东。
能解释一下码?
begin
//
if not (Key in ['0'..'9','.']) then //如果能输入小数的话
if not (Key in ['0'..'9']) then //如果输入整数的话,这两句任选一个。
begin
Key:=#0;
exit;
end;
end;
begin
Key:=#0;
exit;
end;
procedure TForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','.',#8,#13])
then begin
Beep;
Key:=#0;
end;
end;procedure TEditSalesForm.Button1Click(Sender: TObject);begin
//
if Length(Trim(edit1.Text))<14 then
begin
showmessage('请确认所输入的券号长度不小于14位!');
edit1.SetFocus;
end;
end;