2009年5月28日

自行產生 Delphi7 dfm 檔案內容


在 unit Classes 中,有個 procedure ObjectBinaryToText
它利用 TReader 和 TWriter 來讀寫物件
在 Delphi 的 Help 中可以找到 ObjectBinaryToText 的使用範例如下

function ComponentToString(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;

ComponentToString 這個 function 就可以傳入一個 TComponent
它會傳回此物件的 dfm 檔案文字

new 一個 application,在 form 上放一個 button 寫入 Click 事件

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(ComponentToString(Self));
end;

就可以看到此 form 的 DFM 檔案文字

沒有留言:

網誌存檔