为什么要RegisterClass? |
缺席
|
like
一般會員 發表:30 回覆:35 積分:18 註冊:2005-03-10 發送簡訊給我 |
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Unit2, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Panel1: TPanel; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var s:Tmemorystream; rr:Twriter; ff:TFrame2; begin ff:=TFrame2.Create (self); ff.Parent :=Panel1; s:=Tmemorystream.Create ; s.WriteComponent(ff); s.SaveToFile('a'); s.Free; end; procedure TForm1.Button2Click(Sender: TObject); var s:Tmemorystream; ff:TFrame2; begin classes.RegisterClass(TFrame2); classes.RegisterClass(Tlabel); classes.RegisterClass(TButton); s:=Tmemorystream.Create ; s.LoadFromFile('a'); ff := TFrame2(TFrame.Create(Self)); ff.Parent :=self; s.ReadComponent(ff) ; s.Free; end; 为什么要RegisterClass(TFrame2)?我在interface引用了Unit2呀,上述代码执行后,报错,提示'Class TLabel not found',这是为何?也要RegisterClass(TLabel)吗?为什么呢?为什么也还要RegisterClass(TButton)呢?在TForm的Publisher部分有TLabel呀 定义时TButton和TLabel的类信息是否就注册到运行时信息库中了? 如果是,那为何在后面还要用RegisterClass(TButton)和RegisterClass(TLabel)呢? 不明白,还请各位大大指点,谢谢! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |