procedure TForm1.Button2Click(Sender: TObject); var s:Tmemorystream; ff:TFrame2; begin classes.RegisterClass(TFrame2); classes.RegisterClass(Tlabel); classes.RegisterClass(TButton);
Class.RegisterClass与Windows.RegisterClass是不一样的! 我想你应该问的是Class.RegisterClass 这个函数的功能有2点: 1.持久化Call RegisterClass to register a class with the streaming system. Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered. Any other classes used by an application must be explicitly registered by calling RegisterClass if instances are to be saved.2.做Package模式的开发
CreateWindow 一樣,你需要讓操作系統有這樣一個窗口類才行。
比如說,有一個窗口沒有注冊前你只知道它的類名,你想直接建立窗口的話,通常操作: getClass(className), 然後通過取得類名直接生成窗口,這個時候你就需要先用RegisterClassRegisterClasses 說明白了,就是循環執行:RegisterClass,直至全部注冊完
var
s:Tmemorystream;
ff:TFrame2;
begin
classes.RegisterClass(TFrame2);
classes.RegisterClass(Tlabel);
classes.RegisterClass(TButton);
s:=Tmemorystream.Create ;
try
s.LoadFromFile('a');
ff := TFrame2(TFrame.Create(Self));
ff.Parent :=self;
s.ReadComponent(ff) ;
finally
s.Free;
end;
end; 用段代碼,可能容易理解點。
我想你应该问的是Class.RegisterClass
这个函数的功能有2点:
1.持久化Call RegisterClass to register a class with the streaming system. Form classes and component classes that are referenced in a form declaration (instance variables) are automatically registered. Any other classes used by an application must be explicitly registered by calling RegisterClass if instances are to be saved.2.做Package模式的开发