请问:我的程序是通过TreeView组件不同节点动态创建Frame ....在创建Frame时需要用到很多初始化处理,想问一下Frame有没有像Create类似的事件可以在创建后处理一些事情。别的办法的也行!
解决方案 »
- select serverproperty('servername') 怎样在程序中赋给adoquery1
- ADOQuery1.FieldValues[‘字段1’]返回的是什么类型
- 关于多线程的问题!在线等待!
- 求助!!关于checkbox控件的使用!!
- 如何用delphi实现登录功能?
- 急急急!(高手帮忙)用ODBC连SYBASE数据库,在对表INSERT时,如何给表加锁?
- 数据导入到Microsoft Excel的问题!急啊!在线等!!!!
- 请教!!编写ACTIVEX控件如何传递字符串??急!!
- 请问哪的错?
- MSDE安装后,如何生成和管理数据库? …………在线等待
- 求win2000下sniffer的源码
- delphi+access问题(记录集无法定位,最后读取的数据已被更改)
//装载Frame
procedure TMainForm.LoadFrame(str: string);
begin
if FFrame<>nil then//创建前先行释放Frame; FFrame是一个全局变量
begin
FFrame.Free;
FFrame := nil;
end; if GetClass(str)<>nil then
begin
FFrame:=TFrameClass(Findclass(str)).Create(self);//用创建的Frame重写FFrame变量;
FFrame.Parent:=GroupFrame;
FFrame.Align :=alClient;
FFrame.Show;
end;
end;//TreeView组件在不同的节点选择Frame
procedure TMainForm.trvManageChange(Sender: TObject; Node: TTreeNode);
begin
//加载TMyFrame
if 满足一些条件 then
loadFrame('TMyFrame');
end;initialization//注册Frame;
RegisterClass(TMyFrame);//End MainForm .比如说我想让TMyFrame在创建时将其中包括的ListBox1的Item填充.
//TMyFrame ListBox组件
for i := 0 to 10 do
ListBox1.items.add(IntToStr(i));
当加载这个Frame时怎么让这条语句执行呢?
TMyFrame = class(TFrame)
public
construtcor Create(AOwner: TComponent); override;
end;constructor TMyFrame.Create(AOwner: TComponent);
begin
//do anything you want!
end;
最好是重定义DoCreate方法protected
procedure DoCreate; override;
constructor TMyFrame.Create(AOwner: TComponent);
begin
inherited; //do anything you want!
end;
如
public
procedure MyCreate();在调用Frame.Show之前,先调用Frame.MyCreate完成初始化。