delphi的Messaged单元定义如下:
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;
//这个怎么理解?integer到底从哪得到啊?
用的时候我
var Msg: TMessage
但是Msg.WParam,Msg.LParam到底取的那种类型呢?
麻烦知道的说详细点!感谢!

解决方案 »

  1.   

    to aobao(拖拖拉拉) :
      我知道相当于C中的联合,我是问它在什么时候确定是什么类型呢(即integer值怎么得到的?)?
    to everyone:
      麻烦说详细点!
      

  2.   

    老问题了请先Google再问:
    http://community.csdn.net/Expert/topic/3655/3655045.xml?temp=.7988245
      

  3.   

    0: (
            WParam: Longint;
            LParam: Longint;
            Result: Longint);
          1: (
            WParamLo: Word;
            WParamHi: Word;
            LParamLo: Word;
            LParamHi: Word;
            ResultLo: Word;
            ResultHi: Word);
      end;
    表示同一块内存中可以存放不同种类型的数据类型。0和1没有什么特别的意思,
    可以这样理解,要么就是0里面的内容,要么就是1里面的内容。
      

  4.   

    to  linzhengqun(风。其实不想走) ( ) :
      哪个时候取0里面的内容?哪个时候取1里面的内容?
      

  5.   

    我认为,如果你对WParam赋值,则就用的是Integer=0的区域,如果对WParamHi,则Integer=1,它是一个共用体.如果要赋值的话,则由其它函数返回过来吧.