作一个过程:
procedure TMainForm.PDshuzi(var key: char);
begin
if not (key in ['0'..'9', '.', Chr(VK_RETURN), chr(vk_back)]) then
begin
key := #0;
application.messagebox('请输入整数或小数', '提示', mb_ok + mb_iconstop);
end;
end;
procedure TMainForm.PDshuzi(var key: char);
begin
if not (key in ['0'..'9', '.', Chr(VK_RETURN), chr(vk_back)]) then
begin
key := #0;
application.messagebox('请输入整数或小数', '提示', mb_ok + mb_iconstop);
end;
end;
if key<48 or key>57 then
key=0
大概这个思路,具体那些键值我也忘了:)
begin
if not (key in [#8,#13,'0'..'9','.','-']) then
key:=chr(0);
end;
try
StrToInt64(Edit.text);
except
showMessage('some thing wrong!');
abort;
end;
如果是浮点数, 则不用StrToInt,要用别的函数, 具体自已找找StrTo??
OnExit中把关也很不完美。
VFP可能应该算破烂,但它的Text控件真让人怀念,称得上完美。按理说,在Delphi上实现应该也很容易(对borland来说)。