zoukankan      html  css  js  c++  java
  • TComponent与String的转换(得到控件的DFM格式的描述)

    现看下面这两个方法,把一个TComponent做成String,再就是把String转成TComponent

    function ComponentToStringProc(Component: TComponent): string;
    var
      BinStream:TMemoryStream;
      StrStream: TStringStream;
      s: string;
    begin
      BinStream := TMemoryStream.Create; // 创建内存流
      try
        StrStream := TStringStream.Create(s);
        try
          BinStream.WriteComponent(Component); // 把控件描述写入内存
          BinStream.Seek(0, soFromBeginning);  // 重定位内存流
          ObjectBinaryToText(BinStream, StrStream); // 把内存流的内容写到字符流
          StrStream.Seek(0, soFromBeginning);  // 重定位字符流
          Result:= StrStream.DataString;       // 取得字符流的所有结果
        finally
          StrStream.Free;
        end;
      finally
        BinStream.Free
      end;
    end;
    
    function StringToComponentProc(Value: string): TComponent;
    var
      StrStream:TStringStream;
      BinStream: TMemoryStream;
    begin
      StrStream := TStringStream.Create(Value); // 字符流读取String
      try
        BinStream := TMemoryStream.Create;
        try
          ObjectTextToBinary(StrStream, BinStream); // 根据文字生成控件
          BinStream.Seek(0, soFromBeginning);       // 重定位内存流
          Result:= BinStream.ReadComponent(nil);    // 读取内存,返回作为一个控件使用
        finally
          BinStream.Free;
        end;
      finally
        StrStream.Free;
      end;
    end;

    http://blog.sina.com.cn/s/blog_44fa172f0101is8p.html

  • 相关阅读:
    【Java&Android开源库代码分析】のandroid-async-http の开盘
    静态库和动态库
    抽象工厂
    XXX系统发展综述(SSH+Jquery EasyUI)
    android 控制手机的体积的大小 切换音效模式
    中国误区,你还抓?
    PID教程
    setsockopt的作用
    【ThinkingInC++】66、pointer Stash的使用
    jbpm入门样例
  • 原文地址:https://www.cnblogs.com/findumars/p/4998891.html
Copyright © 2011-2022 走看看