我在一个程序里面在设计期加入了一个TFrame,上面有一个TMemo充满这个TFrame,但是没有让他自动创建,在主窗口TForm1里面有一个按钮,一个OpenDialog,一个Panel想让程序在按按钮后打开OpenDialog,调入文本在TFrame的TMemo里面: if OpenDialog2.Execute then begin if (Form1.Frame <> nil) then Form1.Frame.Free; Form1.Frame := TFrame1.Create(Form1.Panel); Form1.Frame.Align := alClient; Form1.Frame.Parent := Form1.Panel; Form1.Frame.Memo1.Lines.LoadFromFile(OpenDialog2.FileName); end; 并且已经在uses相互引用了,为什莫编译器说Frame.Memo1是无定义的变量?难道不自动创建TFrame,就不能引用使用上面的控件??? 忘了说了:if (Form1.Frame <> nil) then Form1.Frame.Free; 是在TForm1里面的一个公有域:Frame: TFrame,用来监测是否有其他相同实例存在,有的话先Free,再创建。
----------------------------------------------
ignore,Ctrl+Alt+Del,then begin;is die,but just not die。
本来是想在主窗口的Panel里面根据不同的按钮产生不同Frame充满到Panel里面,并在充满前先Free掉已存在的实例,您的意思是说强制转换,还有其他办法吗?
----------------------------------------------
ignore,Ctrl+Alt+Del,then begin;is die,but just not die。
在vc里面,派生类可以比较自由的转换成基类,但是基类转换成派生类是要非常小心的,因为派生类可能有不是基类的成员存在;(1)那末像我上面的第一句,将TFrame的声明名称Frame去实例化一个派生类TFrame1不会有问题吗?(2)上面您给我的第2句,应该是将Frame转换成派生类TFrame,也不会有问题吗??
----------------------------------------------
ignore,Ctrl+Alt+Del,then begin;is die,but just not die。
如果说Frame直接继承TFrame,而TFrame1是TFrame的派生类的派生类的话,还能不能TFrame1(Frame)呢?
----------------------------------------------
ignore,Ctrl+Alt+Del,then begin;is die,but just not die。