我看到 message 单元里这样定义消息的:
  TMessage = packed record
    Msg: Cardinal;
    case Integer of
      0: (
        WParam: Longint;
        LParam: Longint;
        Result: Longint);
      1: (
        WParamLo: Word;
        WParamHi: Word;
        LParamLo: Word;
        LParamHi: Word;
        ResultLo: Word;
        ResultHi: Word);
  end;
注意这个case Integer of,这里面那个 integer 作何理解?
实在不明白,请兄弟们指点一下  :)

解决方案 »

  1.   

    就是变体记录了。相当于C中的UNION。integer不用理解,就是语法,没什么意思。
      

  2.   

    参考这里
    http://expert.csdn.net/Expert/topic/1390/1390686.xml?temp=7.040042E-02
      

  3.   

    chechy(简简单单的活)兄,受教了,我也想到是变体记录,但总没有想通怎么是个这东西在这儿:)
      

  4.   

    把integer换成Byte,Word,Long,效果都一样,只表明后面是变体,没有其它意义,你甚至可以改用Char,写为  TMMessage = packed record
        Msg: Cardinal;
        case char of
          'a': (
            WParam: Longint;
            LParam: Longint;
            Result: Longint);
          'b': (
            WParamLo: Word;
            WParamHi: Word;
            LParamLo: Word;
            LParamHi: Word;
            ResultLo: Word;
            ResultHi: Word);
      end;