type
  TpersonRec = record
    ID: Integer;            
      case Boolean of      //这个条件是什么意思,具体怎么用呢?请举一个例子,谢谢  
      True:  (A: integer); 
      False: (B: Word);     
  end;

解决方案 »

  1.   

    相当于
    typedef struct {
      int ID;
      union {
        int A;
        unsigned short B;
      };
    }TpersonRec;
      

  2.   

    你不要管它语法是什么意思,只管用就好了(虽然这个语法可能一辈子都不会用到)
    type 
      TpersonRec = record 
        ID: Integer;            
          case Boolean of      //这个条件是什么意思,具体怎么用呢?请举一个例子,谢谢  
          True:  (A: integer); 
          False: (B: Word);    
      end;var p :TpersonRec ;p.A := 12;ShowMessage(IntToStr(p.B)); //显示12 
    因为A B 二者是存储在同一个物理地址
      

  3.   

    我知道是同一存储位置,但不知道case boolean of 的意义是什么,什么时候是true 什么时候又是false呢,是人为设定吗,,又怎么设定呢,,
      

  4.   

    同一个位置即ID后边的空间,你可以当它是A,也可以当它是B
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      V: TpersonRec;
    begin
      V.A := $ABCD1234;
      ShowMessageFmt('A=%.8X, B=%.8X', [V.A, V.B]);
      V.A := $00001234;
      ShowMessageFmt('A=%.8X, B=%.8X', [V.A, V.B]);
      V.A := $ABCD0000;
      ShowMessageFmt('A=%.8X, B=%.8X', [V.A, V.B]);
    end;共用体,也就是A,B共同使用一个内存,以上例子说明
    至于case XType of
    只是Delphi的语法问题,表示下面的数据是变体
    也可以写成:
    case Integer of 
      0: (a: Integer);
      1: (b: Word);
      ...