首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将TObject保存到文件

将TObject保存到文件
EN

Stack Overflow用户
提问于 2009-03-30 18:47:04
回答 7查看 14K关注 0票数 11

如何将处于当前状态的对象保存到文件中?这样就可以立即读取并恢复它的所有变量。

EN

回答 7

Stack Overflow用户

发布于 2009-03-30 19:57:54

如前所述,最简单的方法是使用及其WriteComponentReadComponent方法。

但是要知道,

  • it TComponent的后代,而不是用于已发布属性的普通TObject;
  • only (保存在dfm中的属性),而不是公共属性或(特别是)私有属性;
  • 在还原组件时,您必须特别注意名称属性<>E219>。

你可能会找到一些你可以在这些中使用的代码,所以答案是:Replace visual component at runtime in DelphiDuplicating components at Run-Time

票数 5
EN

Stack Overflow用户

发布于 2009-03-30 18:54:53

你要找的东西叫做对象持久化。这个article可能会有帮助,如果你在谷歌上搜索"delphi持久化对象“,还有很多其他的。

票数 4
EN

Stack Overflow用户

发布于 2009-03-30 19:28:03

如果您从TComponent继承对象,则可以使用一些内置功能将对象流式传输到文件。我认为这只适用于简单的对象。

以下是一些示例代码,可帮助您入门:

代码语言:javascript
复制
unit Unit1;

interface

uses
  Classes;

type
  TMyClass = class(TComponent)
  private
    FMyInteger: integer;
    FMyBool: boolean;
    FMyString: string;
  public
    procedure ToFile(AFileName: string);
  published
    property MyInteger: integer read FMyInteger write FMyInteger;
    property MyString: string read FMyString write FMyString;
    property MyBool: boolean read FMyBool write FMyBool;
  end;

implementation

{ TMyClass }

procedure TMyClass.ToFile(AFileName: string);
var
  MyStream: TFileStream;
begin
  MyStream := TFileStream.Create(AFileName);
  try
    Mystream.WriteComponent(Self);
  finally
    MyStream.Free;
  end;
end;

end.
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/698536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档