我定义了一个名为Varible的记录性,在Vrible里面又声明了另外一个记录性TStageRecord的指针Current_Sta。
然后编译时
Var
 PStage:^TStageRecord;
begin
PStage:=Varible.Current_Sta;  //这句就报Incompatible types的错误可是类型是匹配的啊,都是TStageRecord类型的指针,怎么回事?

解决方案 »

  1.   

    猜测看
    Varible是你定义的record类型。PStage:=Varible.Current_Sta;这里又赋值了。但你要知道Varible是一个类型,并不是一个变量。如果你定义一个
    var
      v: Varible;
    然后再
    PStage:=v.Current_Sta;
    关键看你怎么定义的。
      

  2.   

    对不起,我说错了,Varible是TVarible(我定义的记录型)的对象
      

  3.   

    两个记录类型定义如下TStagerecord=Record  
    BeiNum:integer;     
    endNum:Integer;
    datasum:integer;
    SList:TList<TStagerecord>;
    End;TVariable=Record
     StaList:TStagerecord;  
     Current_Sta:^TStagerecord;     
     Flag1:Integer;                
     Flag2:Integer;               
     Line_Flag:integer;
    end;        
      

  4.   

    TStagerecord=Record  
    BeiNum:integer;     
    endNum:Integer;
    datasum:integer;
    SList:TList<TStagerecord>;
    End;
    PStagerecord = ^TStagerecord;TVariable=Record
     StaList:TStagerecord;  
     Current_Sta:PStagerecord;     
     Flag1:Integer;                
     Flag2:Integer;               
     Line_Flag:integer;
    end;   
    Var
     PStage:PStageRecord;
    begin
    PStage:=Varible.Current_Sta;