小问题请教
如何在Edit中只输入数字和小数点而不输入其他字符?有什么好方法吗?能否写详细点,谢谢 问题点数:100、回复次数:7Top
1 楼lextm(LeLe)回复于 2006-03-03 12:06:21 得分 0
处理OnKeyDown/Up等等事件,判断用户按下的键,如果是数字或者小数点就相应,如果不是则忽略用户的输入。这样做一般就可以了。
用MaskEdit应该也可以。Top
2 楼gflpower(燕赤侠)回复于 2006-03-03 12:40:43 得分 0
使用 ApplicationEvents
截获消息
时查看消息内容是否合法
如果不合法将消息结构都置为0
Top
3 楼ourlin(寒江独钓)回复于 2006-03-03 12:41:36 得分 0
用MaskEdit或者:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9','.',#8]) then key:=#0;
end;
Top
4 楼meiqingsong(阿飛)回复于 2006-03-03 12:51:50 得分 0
使用按键处理有个问题那就是可以拷贝其他字符进去Top
5 楼xyz800316(路茫茫)回复于 2006-03-03 13:00:11 得分 0
用OnKeyPress事件控制很好用的!Top
6 楼lwk_hlj(阿凯(学习oralce中))回复于 2006-03-03 13:25:20 得分 100
procedure TMaterialForm.lePriceKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9', #8, '.']) then
key := #0
else
begin
if key = '.' then
begin
if pos('.', TEdit(Sender).Text) > 0 then key := #0; //只能输入一个小数点
if (length(TEdit(Sender).Text) = 0) then //如果第一次输入'.'则自动加'0';
begin
Tedit(Sender).SelText:='0.';
key:=#0;
end;
end
else
if key = '0' then
begin
if (length(TEdit(Sender).Text) = 1) and (TEdit(Sender).Text = '0') then
key := #0;
end
else
begin
if (length(TEdit(Sender).Text) = 1) and (TEdit(Sender).Text = '0') then
TEdit(Sender).Text := '';
end;
end;
end;Top
7 楼lovendII(流氓都做了城管)回复于 2006-03-03 13:29:24 得分 0
用MaskEdit方便点Top




