在delphi中這是如何實現的? tseug請進 (100分)

  • 主题发起人 主题发起人 leway
  • 开始时间 开始时间
L

leway

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi如何將窗體存成dfm文件?(窗體上有許多不同的可視控件)
delphi如何讀dfm文件來創建窗體?(窗體上有許多不同的可視控件)
class的published屬性可以在設計期間訪問,這是如何實現的?
 



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;
 
delphi中
Classes


 
拭目以待 up
 
你看一下
TReader
就可以了
 
参考
http://ycrjq.y365.com/shool/055.htm
 
to: tseug
http://ycrjq.y365.com/shool/055.htm看完了。有一個問題向您求教。
以下是讀資源文件Create 窗體,但不知為何報錯。請幫忙看一下。謝謝!
編譯不報錯,運行報錯:Project Project2.exe raised exception class EInvalidImage with message ‘Invalid stream format’. Process stopped. Use Step or Run to continue.
procedure TForm1.FileOpen;
var
DesignWin: TForm;
begin
DesignWin := TForm.Create(Application);
ReadComponentResFile('Unit3.dfm', DesignWin);
end;
 
这个你要用CreateNew方法, 不能用Create
 
CreateNew也不行,報同樣的錯誤。
 
参考这个...

procedure TForm1.Button1Click(Sender: TObject);
var
F : TForm;
begin
WriteComponentResFile('aaa.Frm', Self);
F := TForm1.CreateNew(nil);
ReadComponentResFile('aaa.Frm', F);
F.Show;
end;
 
但這不是我所需要的,在程序中,您已知道窗體類為TForm1,而我並不知道窗體類名,隻有dfm文件,想讀dfm文件,然後Create。
 
多人接受答案了。
 
后退
顶部