好郁闷哦, 有人来开导下吗?TA   =   class   
  private   
      StrA   :string;   
  end;   
    
  TB   =   class   
  private   
      StrB :TA;   //类类型的成员变量   
  end;Var tb1:TBtb1.StrB.StrA 怎么赋值啊? 具体参看我的附件, 问题是怎么给
TB的StrB这个类类型的成员赋值

解决方案 »

  1.   

    var
     ta:TA;
     tb:TB;
    begin
     ta := TA.create;
     ta.StrA:='xxx';
     tb:=TB.create;
     tb.strb:=ta;
    end;
    象这种问题要注意两者的顺序,乱写的,期待高手
      

  2.   

    编译出错哦, 说tb 没有 初始化, 晕死了
    ls 的还有办法吗? 下载我的附件调试下, 看看效果啊
      

  3.   

    两个地方有问题(红色的部分自己修改):constructor TArticle.Create(fruitName:string;price:extended);
    begin
        //unFruit.Create(fruitName);
        unFruit:= TFruit.Create(fruitName);
        Prix:=price;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      //...
    begin
      //....
      //unArticle := unArticle.Create('Pomme',1.5);
      unArticle := TArticle.Create('Pomme',1.5);
      //...
    end;
      

  4.   

    faint!  //unFruit.Create(fruitName);
      unFruit:= TFruit.Create(fruitName);
      //unArticle := unArticle.Create('Pomme',1.5);
      unArticle := TArticle.Create('Pomme',1.5);PS:下次直接帖代码,不要贴附件。
      

  5.   


    TA   =   class    
      private    
          FStrA   :string;   
      published
       property StrA:String read FStrA write FStrA 
      end;    
         
      TB   =   class    
      private    
          StrB :TA;   //类类型的成员变量  
      public
        constructor Create;
        destructor Destroy; override;  
      end; Var tb1:TB 
    constructor TB.Create;
    begin
      inherited Create;
      StrB:=TA.Create;
    end;
    destructor TB.Destroy; override;  
    begin
      StrB.free;
    end;
      

  6.   


      type
      TA   =   class
      private
          StrA   :string;
      end;  TB   =   class
      private
          StrB :TA;   //类类型的成员变量
      public
          constructor Create ;
          destructor  Destroy;
      end;implementationconstructor TB.Create;
    begin
      inherited Create;
      StrB       := TA.Create;
    end;
    destructor  TB.Destroy;
    begin
      FreeAndNil(StrB);
      inherited;
    end;
      

  7.   

    楼上写得比我好,TA类中的StrA写成Property,在类外可以访问~
      

  8.   

    已经成功编译,事后我想了下, 发现一个类类型的成员 在赋值的时候
    必须要用类的Create 不能直接调用对象的Create 不知道这个理解
    对不对。delphi 真是太复杂咯,我本身是C#和PHP的,现在回头搞delphi
    觉得好不习惯delphi的理念。PS 下次直接粘代码咯