Tpersistent是Tobject直接派生的,很重要的功能是提供了对象之间相互赋值和读写流的能力,但它是一个抽象类,不能直接创建对象实例,要用它的派生类!
有关流操作和组件之间的赋值操作的代码:
procedure TForm1.Button1Click(Sender: TObject);
  var
    MyStream:TMemoryStream;
    StrList:TstringList;
 begin
   try
     MyStream := TMemorystream.Create;
     MyStream.LoadFromFile('c:\lzj.txt');
     StrList:=TStringList.Create;
     StrList.LoadFromFile('c:\lzj.txt');
     listbox1.Items.LoadFromStream(MyStream);
     Memo1.Lines.Assign(StrList);
   finally;
     MyStream.Free;
     StrList.Free;
   end;
 end;

解决方案 »

  1.   

    Tresisitent派生类代码应该包括那些啊?
      

  2.   

    刚从c转过来,习惯于class,对unit还不是很熟
      

  3.   

    在实际应用中,一般从TComponent派生新的组件。VLC类层次是这样的:TObject->TPersistent->TComponent->TControl->……。
    TComponent是Delphi中所有组件的抽象基类,提供了组件的基本特征:
    1、可以出现在组件选项板上;
    2、可以加到Form上;
    3、可以管理其他组件。
    但是TPersistent功能比较弱,她提供了对象之间相互赋值(Assign/AssignTo)和读写流(DefineProperties)的能力。从她派生的类没有实用价值。
    从Tpersistent怎么派生:
    type 
      MyPersistent = class(TPersistent)
      private
      ……
      protected
      ……
      public
      ……
      published
      ……
      end;
    然后实现上面的定义、声明即可。
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';
    I.Desire := '加不加分随你';
    —————————————————————————————————