是我的错???还是控件的bug????(300分的简单问题,是很简单的)(300分)

  • 主题发起人 主题发起人 Overbest
  • 开始时间 开始时间
O

Overbest

Unregistered / Unconfirmed
GUEST, unregistred user!
很简单的一个关于updown控件的程序:

delphi4中


form上放一个edit,name:=edit1,一个updown,associate属性为 edit1,其余不变

定义edit1的onchange事件为

procedure TForm1.Edit1Change(Sender: TObject);
begin
showmessage('aaa');
end;

运行,

发现edit1的onchange事件总是要先于程序其它部分一运行就执行,并且,程序运行时,当用
updown调节数字变化时,onchange事件执行(这是正常的),此时,只要用鼠标点form的上半部分
updown控件的上箭头就被按下去,按form的下半部分,updown控件的下箭头就被按下去,
就算按系统按钮,最小化,最大化,关闭,也一样。

除了onchange事件外,其它控件的事件均没有(包括form)


是我的错???还是控件的bug????

怎么办???有没有别的控件能实现updown控件功能。在哪下载???

delphi5有没有这种问题???别叫我换delphi5!!!!

刺激一下,给300分
 
哈哈哈怪。
应该是UPDONW的BUG。
RXLIB中有UPDONW控件,而且RXLIB实是一个值得收藏的控件包。
 
我在delphi5下测试了一下,和你所说的一样
我想应该是控件的问题
你可以用RX中的:TRxSpinEdit
其他许多控件包中都有spinEdit,用这应该都没问题
 
但是如果你在那个上下按钮之间(地方很小)的细条处点一下,然后
再点其他地方就不会触发变化,如果按完上或下又有了,所以我也觉
得很奇怪,大概是控件的BUG吧
 
其实delphi自己带有一个TSpinEdit,
在Chart的预览里就能用spy++找到,
可惜不提供给我们用.

BCB里倒有一个CSpinEdit,还可以
 
Overbest:
只要在Edit1的onchage中加入:
If Edit1.Focused then
showmessage('aaa');
因为在Edit生成时改变了其text.
 
RXLIB哪有???何处下载???
 
RxLib v2.75 /with source/Delphi1-5 Size:1,137KB
http://home.online.tj.cn/%7Emydelphi/delphi/Rxlib275.zip
修正文件 Size:63KB
http://home.online.tj.cn/%7Emydelphi/delphi/Rxfix_275.zip
帮助文件 Size:828KB
http://www.net-wing.net/kangwei/newvcl/rxlib/ODRXHELP.ZIP
 
这是构件的bug!
 
delphi的dug多的很,
期待borland及早把它改过来.
 
???
component pallete中sampleslan栏既有
tspinbutton,又有tspinedit,都能用,都没问题。

你们到底想说什么?
 
同意浪迹天涯的说法。
另外,我们应该好好运用这个bug,判断鼠标大约部位
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
showmessage('aaa');
if edit1.Focused then showmessage('edit1');
if updown1.Focused then showmessage('updown1');

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if edit1.Focused then showmessage('edit1');
if updown1.Focused then showmessage('updown1');

end;
可知foused没有失去,可惜edit1.foused是只读的。
 
所以哪,我就。。。。。
procedure TForm1.Edit1Change(Sender: TObject);
begin
form1.SetFocus;
end;
啊,整个世界,清静啦。。。。

加分,加分!!!
 
加分,加分!!!
 
多人接受答案了。
 
后退
顶部