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(, soFromBeginning); // 重定位内存流
ObjectBinaryToText(BinStream, StrStream); // 把内存流的内容写到字符流
StrStream.Seek(, 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(, soFromBeginning); // 重定位内存流
Result:= BinStream.ReadComponent(nil); // 读取内存,返回作为一个控件使用
finally
BinStream.Free;
end;
finally
StrStream.Free;
end;
end;
http://blog.sina.com.cn/s/blog_44fa172f0101is8p.html
TComponent与String的转换(得到控件的DFM格式的描述)的更多相关文章
- 让Label等控件支持HTML格式的代码? 使用NSAttributedString:
> 如何让Label等控件支持HTML格式的代码? 使用NSAttributedString: NSString *htmlString = @"<div>Tate< ...
- C++ double转string类型以及MFC控件简单使用方法
这两天项目须要,測试c++库里面内容.生成jar再给Android调用.我没有学过C++,如今開始记录C++简单使用方法.測试时候一般都是使用mfc程序来測试.要输入值.显示结果吗.我用的编译环境vs ...
- 关于jquery日期控件及时间格式转换2017.05.27
开始时间:<input type="date" id="starttime" class="time"/>//data为日期控件 ...
- DS标签控件文本解析格式
DS标签控件使用DSL文本渲染引擎,支持DSL引擎代码.目前支持代码如下: <b>粗体</b> 以粗体显示 <i>斜体</i> 以斜体显示 <u& ...
- List<string>绑定到DataGridView控件
问题 将一个简单的List<string>作为数据源绑定到 DataGridView myDataGridView.DataSource = myStringList; 但是只得到一个名为 ...
- 用DevExpress.textEdit控件限定数据录入格式
例:只允许输入4位数字 第一步 第二部 例:只允许IP格式 设置Mask属性项的EditMask属性值为:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5 ...
- 日期控件传到后台异常。日期数据格式是 Date 还是 String?
问题:日期控件的时间,传到Controller层直接异常. 前台日期格式:YYYY/MM/DD,后台Java定义的时间类型:Date. 解决: 方法一:原因是Controller层的参数类型定义为 D ...
- winform导入导出excel,后台动态添加控件
思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...
- [转] WinForm自定义函数FindControl实现按名称查找控件
原文地址 WinForm自定义函数FindControl实现按名称查找控件 本文所述实例实现WinForm自定义函数FindControl实现按名称查找控件的功能,在C#程序开发中有一定的实用价值. ...
随机推荐
- webService设置超时时间
在客户端配置文件中设置: <bindings> <basicHttpBinding> <binding name="UrlCrawler ...
- Eclipse 乱码解决方案(UTF8 -- GBK)
UTF8 --> GBK; GBK --> UTF8 eclipse的中文乱码问题,一般不外乎是由操作系统平台编码的不一致导致,如Linux中默认的中文字体编码问UTF8, 而Wind ...
- freebsd安装和图形界面安装
通过上述的安装以后只有命令行界面,没有图形界面,如果想使用X Window就需要安装X 11和GNOME(或KDE). 1. 安装X 11(用root账户) 在确保虚拟机的CD-ROM加载了FreeB ...
- EXW_FOB_CIF_CFR 外贸报价方式&条款之间的区别与联系
一.工厂交货价(EXW=Ex Works): 交货地点:出口国工厂或仓库: 运 输:买方负责: 保 险:买方负责: 出口手续:买方负责: 进口手续:买方负责: 风险转移:交货地: 所有权转 ...
- C# System.Object基类
System.Object 基类 System.Object在.Net中是所有类型的基类,任何类型都直接或间接地继承自System.Object.没有指定基类的类型都默认继承于System.Objec ...
- Candy 解答
Question There are N children standing in a line. Each child is assigned a rating value. You are giv ...
- ftp报错 200 port command successful. consider using pasv 425 failed to establish connection
最近在公司做的项目是需要在客户端录制视频,然后通过ftp传到服务器端.客户端是windows,服务器端linux.今天用新的电脑配置好项目之后,测试数据传输时出现了“200 port command ...
- hdu 3681 Prison Break(状态压缩+bfs)
Problem Description Rompire . Now it’s time to escape, but Micheal# needs an optimal plan and he con ...
- Oracle使用NLSSORT函数实现汉字的排序
1).按拼音首字母排序 SELECT * FROM T_TABLE ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_PINYIN_M'); 2).按笔画排序SELE ...
- actionInvocation
1.actionInvocation是什么 ActionInvocation就是Action的调用者.ActionInvocation在Action的执行过程中,负责Interceptor.Actio ...