初学晚辈幼稚的问题,望勿见笑!(88分)

  • 主题发起人 主题发起人 花雨
  • 开始时间 开始时间

花雨

Unregistered / Unconfirmed
GUEST, unregistred user!
1.delphi4.0和delphi3.0哪个更好些?好象见过有大侠说3.0更好,为什么?
2.如何在Tedit或Tmaskedit控件中只能输入Single数据类型,我用MaskEdit
定义了0000.00,输入57.57,得到的是57 .57,空格不能自动消除,同样,
定义日期格式时,98-10-18可以输成98-66-88,怎样让66不超过12,88不超
过31?
以上是初学晚辈幼稚的问题,望勿见笑!
 
对于你所提出的第一个问题要分两种情况来回答:
你是一个新手, 你可以直接使用Delphi4 中更为
强大的编程代码工具CodeInsight,

---- CodeInsight是一组代码自动化功能的总称, 它能够
帮助您快速生成代码,从而减少语法错误并提高编程效率。
Delphi 3 已经有了CodeInsight 功 能, 但Delphi 4又作了很
多改进。当然某些方面Bug还是有的, 目前有补丁程序已有.

至于有些大虾说3.0更好, 大概是因为他的VCL控件集是3.0
版,而又无源程序,无法重新编译吧?! 注意无源码的3.0控件
无法在Delphi4中使用.

有人说D4比D3慢, 那是正常的, 功能增强,而速度又不损失很难
做到, 但速度慢的有限, 总比M$的VC++要快的多的多的多!!!

你的第二个问题是Tmaskedit的问题, 你需要输入Single数据类型,你可以用9999.99定义, 在TMaskedit的editMask字符
属性中, '9'代表在位置上输入数字,但并不必须输入, '0'和'9'相
反, 它必须要有数字输入,不能为空. 参见delphi help中的TCustomMaskEdit.EditMask

日期格式 办法一: 可以写作00/!90/90;1;_ 然后在OnChange事 件中判断, 此办法较麻烦;

办法二: 用TDateTimePiker控件代替TMaskEdit, 它直接支持日期输入, 简单方便.

 
谢谢SeaSky,TDateTimePiker控件非常好用,我用editMask定义了9999.99
后,键入57.57,得到的是57__.57,7和.之间的空格不能自动消除,再次请
教。
初学晚辈敬上!
 
眉宇太好的办法!
你可以使用专业控件(一时想不起来了)
也可以在TEDIT的ONEXIT事件中加入代码,如果输入不符合要求,可以让TEDIT.SETFOCUS!
用TRY
.....//把EDIT中的内容转换成需要的类型。
EXCEPT
EDIT1.SETFOCUS;如果转换失败,就重新输入
END;
 
加一句:

while pos('_',tempStr)<>0 then delete(tempStr,pos('_',temostr),1);

或许能把他们删掉.

 
加一句:

while pos('_',tempStr)<>0 do delete(tempStr,pos('_',temostr),1);

或许能把他们删掉.

 
你可以直接使用TEdit控件, 在KeyPress事件中使用如下过程:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
label1.Caption := intTostr(ord(key));
case Key of
'0'..'9' : exit;
'.' : if pos('.',Edit1.Text )> 0 then
Key:=#0;
'-','+' :
if not ((pos('+',(Sender as TEdit).Text)=0) and
(pos('-',(Sender as TEdit).Text)=0) and
(( Sender as Tedit).selstart = 0)) then
Key:=#0;
#8 : //Backspace Key
else ;
Key:=#0;
end;
end;

 
后退
顶部