20.3.1.1寫DFM文件的過程:WriteComponentResFIE
該過程帶有兩個參數FileName和Instance。FileName參數指定要寫入的DFM文件名,Instance參數是TComponent類型的,它指定要寫入的部件名,一般是TForm對象的子類。該過程將Instance部件和其擁有的所有部件寫入DFM文件。
這個過程的意義在於,可以在程序運行過程中產生Delphi的窗體部件和在窗體中插入部件,並由該函數將窗體寫入DFM文件,支持了動態DFM文件的重用性。
該過程的程序是這樣的:
procedure WriteComponentResFile(const FileName: string; Instance: TComponent);
var
Stream: TStream;
begin
Stream := TFileStream.Create(FileName, fmCreate);
try
Stream.WriteComponentRes(Instance.ClassName, Instance);
finally
Stream.Free;
end;
end;
函數中,用FileStream創建文件,用Stream對象的WriteComponetRes方法將Instance寫入流中。
20.3.1.2 讀DFM文件的函數:ReadComponentResFile
ReadComponentResFile函數帶有兩個參數FileName和Instance。FileName參數指定要讀DFM文件名,Instance參數指定從DFM文件中要讀的部件。該函數從DFM文件中將Instance和它擁有的所有部件,並返回該部件。
這個函數的意義在於,配合WriteComponentResFile過程的使用支持DFM文件的重用性。
該函數的程序是這樣的:
function ReadComponentResFile(const FileName: string; Instance: TComponent):
TComponent;
var
Stream: TStream;
begin