With My3fPMComm1 
 If (.PA And &H800) <> 0 Then
            labpa.Caption = "DBP overrun"
  If (.PA And &H8000) <> 0 Then
            labpa.Caption = "HR overrun"
.PA And &H800 是什么意思?  My3fPMComm1的PA与运算? 还是或运算?  
还有&H800和 &H8000 是什么意思?
本人很少用VB  

解决方案 »

  1.   

    My3fPMComm1.PA 应该是 Integer 或 Long 类型的成员变量。  If (.PA And &H800) <> 0 Then 这里是进行‘位与’运算,实质就是检查 My3fPMComm1.PA 的二进制第15位(最低位为0位)是否为 1 。如果为1,(.PA And &H800) <> 0结果为True,否则结果就为False。
      

  2.   

    不好意思,1F 看错了:.PA And &H800 是检查第11位,
    .PA And &H8000 才是检查第15位。&H 是表示十六进制数据。用二进制数表示:
    &H800 ---> 00001000 00000000
    &H8000 ---> 10000000 00000000
      

  3.   


    VB中的And有两种功能:一是逻辑与,二是按位与,你这里是按位与。
    .PA And &H800 '.PA的值与十六进制的800按位与。
    VB中用&H开头的表示16进制数