mbRight究竟是什么类型的什么值?(50分)

  • 主题发起人 主题发起人 ynduanlian
  • 开始时间 开始时间
Y

ynduanlian

Unregistered / Unconfirmed
GUEST, unregistred user!
在Controls.Pas中这样定义:
TMouseButton = (mbLeft, mbRight, mbMiddle);

在我的程序中:
procedure TfrmMain.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton
Shift: TShiftState
X, Y: Integer);
begin
if button=mbRight then

那么,这个mbRight或mbLeft究竟是个什么类型的什么值?
 
不清楚,帮你顶了。
 
不是有声明吗?Button: TMouseButton,这是一个枚举类型,mbRight是这个枚举类型其中的一个值.
 
枚举类型也是整数,你可以用Ord来获得这个值的整数,例如
ShowMessage(IntToStr(Ord(mbRight)));
 
TMouseButton = (mbLeft, mbRight, mbMiddle);

枚举类型
 
我在程序中引用了另一个ACTIVEX文件,这个控件的TLB文件中有这样的定义:

const
mbLeft = $00000000;
mbRight = $00000001;
mbMiddle = $00000002;

这个和Controls.Pas中的定义一致么?
 
不一样,这个完全就是数字的
0,1,2的HEX表示。
 
我觉得实际上这些发送的消息呀,存的信息,大多都是btye的!
 
我在程序中引用了另一个ACTIVEX文件,这个控件的TLB文件中有这样的定义:

const
mbLeft = $00000000;
mbRight = $00000001;
mbMiddle = $00000002;

这个和Controls.Pas中的定义一致么?


可以视为相等
因为DELPHI中的枚举类型如果不指定值,默认是从0开始的,即
TMouseButton = (mbLeft, mbRight, mbMiddle);
等同于
TMouseButton = (mbLeft = 0, mbRight = 1, mbMiddle = 2);
 
多人接受答案了。
 
后退
顶部