TWMNCHitTest = packed record
    Msg: Cardinal;
    Unused: Longint;
    case Integer of
      0: (
        XPos: Smallint;
        YPos: Smallint);
      1: (
        Pos: TSmallPoint;
        Result: Longint);
  end;1.这里的packed 表示什么意思啊,帮忙给解释一下?
2.这里的case 语句怎么回事呢?肯请弟兄帮一下忙!!  
好人一生平安!!!

解决方案 »

  1.   

    TWMNCHitTest = packed record//---声明一个紧缩型的记录类型;域保存时按字节对齐模式。
        Msg: Cardinal;
        Unused: Longint;
        case Integer of//---这里是一个变体部份,这一句是一个标志而已。编译器根据标志来决定数据域的存在方式是按0:号方案存取,还是按1号方案来存取的。
          0: (
            XPos: Smallint;
            YPos: Smallint);
          1: (
            Pos: TSmallPoint;
            Result: Longint);
      end;