初学者的问题: Params.Style := WS_THICKFRAME or WS_POPUP or WS_BORDER; 这个 Params.Style

  • 主题发起人 主题发起人 拾荒者
  • 开始时间 开始时间

拾荒者

Unregistered / Unconfirmed
GUEST, unregistred user!
初学者的问题: Params.Style := WS_THICKFRAME or WS_POPUP or WS_BORDER
这个 Params.Style 将得到什么值呀?在语法参考书中没看过这种 or 的用法呀?(30分)
<br />初学者的问题: Params.Style := WS_THICKFRAME or WS_POPUP or WS_BORDER
这个 Params.Style 将得到什么值呀?
是枚举 ? 是布尔 ? 在语法参考书中没看过这种 or 的用法呀?
 
结果是整数。那几个 WS_XXX 都是位掩码。

你要把它们当 二进制数 看。比如

X: 00000100
Y: 00000010
Z: 00001000

X or Y or Z 就是 00001110
 
然后你只要把结果跟某个位掩码 And,就知道这个值是否被传进来了:
if Style and WS_THICKFRAME <> 0 then
WS_THICKFRAME 位被置 1;

你可以将此看成是一次传递多个 布尔型 参数的途径。(毕竟一个布尔值仅需要一 bit)

 
明白了,原来这个 ‘or’ 有这是位运算符,我一直把它当关系运算符了。:D
 
后退
顶部