我用SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle,GWL_STYLE) or ES_NUMBER);这个函数限制EDIT 只能输入数字,但现在发现,效果是达到了,但是无法输入小数点了。就是我想输入0.003,确只能写成0003,小数点无法输入,怎么办啊??
急!!
GetWindowLong(Edit1.Handle,GWL_STYLE) or ES_NUMBER);这个函数限制EDIT 只能输入数字,但现在发现,效果是达到了,但是无法输入小数点了。就是我想输入0.003,确只能写成0003,小数点无法输入,怎么办啊??
急!!
解决方案 »
- Showmodal为何单独建立一个消息循环的问题
- 大家请近来看看,能帮忙的尽量帮我一下,分不够可以再加,绝不食言!
- 在同一窗体中添加两个时钟控件为什么总出错?
- 高手都到哪里去了?????????
- form关闭后...?
- qichreport中的分组合计问题?急!!!
- 跪求智者,本人刚完成一个c/s的项目,用的delphi开发,现想将client通过ocx放入IE中,该如何实现啊?
- 请问除了我现在知道的。TRegistry TInifile 还有哪些长用的。请说明。以及他们的简单功能
- 怎样用Excel 动态增加一个 WorkSheet,且WorkSheet 从已有的模板文件中打开
- 在问一次,谁会赶紧来拿分,很简单的。
- 初学者DBGrid问题
- 再还一百,闲人莫进。
begin
if not (key in ['0'..'9','.']) then key:=#0;
end;
begin
if not (key in ['0'..'9','.',#13,#8]) then key:=#0;
end;
因为可以输入两个以上的小数点,例如:32..346...
必须在进行KeyPress和Change的时候监视是否有小数点
bDecimalPoint:boolean,表示是否有小数点
procedure TForm1.Edit1Change(Sender: TObject);
begin
if pos('.',edit1.text)=0 then
bDecimalPoint:=false
else
bDecimalPoint:=True;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
bDecimalPoint:=false;
end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if (key in ['0'..'9',#8,#13,'.']) then
if (key='.') and (bDecimalPoint) then
key:=#0
else//不能省略
else
key:=#0;
end;