UpDown的OnChangeEx事件中可以获得按钮的状态
点向上按钮时 Direction=udpUP
点向下按钮时 Direction=udpDown 但有时点向上或向下按钮,却有Direction=udpNone,不知道这是什么原因,能不能让它不出现Direction=udpNone的情况,望各位赐教
点向上按钮时 Direction=udpUP
点向下按钮时 Direction=udpDown 但有时点向上或向下按钮,却有Direction=udpNone,不知道这是什么原因,能不能让它不出现Direction=udpNone的情况,望各位赐教
解决方案 »
- delphi中如何让主板蜂鸣器发出声音?
- 我用Indy控件做了个客户/服务器程序,为什么客户端在本机连接服务器没有问题,在其他机器上就不行了呢?
- 欢迎大家加盟QQ群:Delphi高手突破(群号:1463857) 共同讨Delphi技术,共同交流,共同进步!
- 求delphi界面控件,可以达到flash效果
- 有没有哪个时间函数的返回值是精确到毫秒的
- 我只是想把Word文档显示在窗体上,该怎么做?时间紧,任务急!
- 关于工具栏的问题!100分送上
- 报表为什么在不同机子上显示不一样?
- 过程的调用,是怎样的,请来个例子吗
- 各位仁兄,为什么我做的管理软件个不大,占系统的资源挺大?
- 请教,有没有类似于StringList的类,但可以存储对象?
- 高分咨询:用Indy组件的IdTCPClient、IdHTTP组件,怎么通过HTTP代理访问外网?
updNone The position is changing to an illegal value (less than the minimum value or greater than the maximum value).
updUp The position is increasing.
updDown The position is decreasing.源码里是这样的:
if (FNewValue < Min) and (FNewValueDelta < 0) or
(FNewValue > Max) and (FNewValueDelta > 0) then
Direction := updNone
else if FNewValueDelta < 0 then
Direction := updDown
else if FNewValueDelta > 0 then
Direction := updUp;我的测试代码:
procedure TForm1.UpDown1ChangingEx(Sender: TObject;
var AllowChange: Boolean; NewValue: Smallint;
Direction: TUpDownDirection);
begin
Caption:=Caption+IntToStr(NewValue);
case Direction of
updUP : Caption:=Caption+'u';
updNone :Caption:=Caption+'n';
updDown :Caption:=Caption+'d';
end;
end;测试结果:当第一次点击向下的按钮时,FNewValueDelta=-1, FNewValue也从0变为-1,满足if (FNewValue < Min) and (FNewValueDelta < 0) Direction值就会为updNone。其中Min=0,Max=100。也就是说,点一下向上按钮FNewValue+1,点一下向下按钮FNewValue-1,当FNewValue超出0~100范围Direction就会为None。
------------
是的。这个控件我用得比较少,我见到一些第三方控件,上下键都对应一个点击事件,也不存在udpNone这样的东西。
(FNewValue > Max) and (FNewValueDelta > 0) then
Direction := updNone
else if FNewValueDelta < 0 then
Direction := updDown
else if FNewValueDelta > 0 then
Direction := updUp;