如何在Com下使用TStringList
来源:互联网 发布:java画像素点函数 编辑:程序博客网 时间:2024/05/20 17:09
unit uForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
hStrList: TStringList;
v: OleVariant;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure VariantToStream(const Data: OleVariant; Stream: TStream);
var
p: Pointer;
begin
p := VarArrayLock(Data);
try
Stream.Write(p^, VarArrayHighBound(Data,1) + 1); //assuming low bound = 0
finally
VarArrayUnlock(Data);
end;
end;
function StreamToVariant(Stream: TStream): OleVariant;
var
p: Pointer;
begin
Result := VarArrayCreate([0, Stream.Size - 1], varByte);
p := VarArrayLock(Result);
try
Stream.Position := 0; //start from beginning of stream
Stream.Read(p^, Stream.Size);
finally
VarArrayUnlock(Result);
end;
end;
function StringlistToVariant(aStrlist: TStrings): OleVariant;
var
hStream: TStream;
begin
hStream := TMemoryStream.Create;
try
aStrList.SaveToStream(hStream);
hStream.Seek(0,soFromBeginning);
Result := StreamToVariant(hStream);
finally
hStream.Free;
end;
end;
procedure VariantToStringlist(const Data: OleVariant; aStrlist: TStrings);
var
hStream: TStream;
begin
hStream := TMemoryStream.Create;
try
VariantToStream(Data,hStream);
hStream.Seek(0,soFromBeginning);
aStrList.LoadFromStream(hStream);
finally
hStream.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
hStrList:= TStringList.Create;
hStrList.Assign(Memo1.Lines);
v := StringlistToVariant(hStrList);
hStrList.Destroy;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
VariantToStringlist(v,Memo2.Lines);
end;
end.
- 如何在Com下使用TStringList
- 如何在wince下注册COM组件?
- 如何在C#使用COM接口
- 如何知道COM端口在使用中
- TStringList的使用技巧
- Delphi TStringList的使用
- TStringList的使用
- 如何在托管环境下释放COM对象
- 转:如何在托管环境下释放COM对象
- 如何在托管环境下释放COM对象
- Tstringlist
- TStringList .
- TStringList
- TStringList
- 什么是COM,如何使用COM
- TStringList的使用(转载l)
- 如何在 Visual C# 组件中使用 COM+ 事务
- 使用自定义分隔符分离字符串 解决Delphi7下TStringList.Delimiter分离无法跳过空格问题
- 无线网络常识
- c++Builder如何控制WORD
- Red Hat 企业 Linux 第五版 发布
- MacromediaFlash遭FreeBSD社区抵制
- Sun Java System Application Server Platform Edition 8.2 + 远程服务器管理
- 如何在Com下使用TStringList
- Ubuntu 6.10下安装source navigator
- 如何在修改安装的对话框中禁止 "修改" 这一项
- malloc,calloc,realloc等内存分配函数区别
- va_list的用法
- VS及数据库安装的问题及解决
- 无线路由设置
- 对日软件日语词汇收集(1)
- 无线网络架设