小弟先行谢过.
我写了一个动态加载Frame的小程序,每次第一次运行的时候加载是正确的,但是第二次换页面再次加载的时候就不能够正常被加载!
程序代码如下,其中使用的TMS控件中的TAdvToolBarPager,通过它的页面变化,把Frame加载到Form 上!procedure Ts.FormCreate(Sender: TObject);
begin
AdvToolBarPager1.ActivePageIndex := 0; //首先动态加载一个页面
AdvToolBarPager1Change(AdvToolBarPager1);
end;procedure Ts.AdvToolBarPager1Change(Sender: TObject);
var
TabIndex: Integer;
cClass: TClass;
PageControl: TAdvToolBarPager;
frameName: string;
begin
PageControl := Sender as TAdvToolBarPager; //赋值
TabIndex := PageControl.ActivePageIndex; //赋值
if PageControl.ActivePage.Tag <> 0 then Exit; //如果已经存在,则不在重新加载 cClass := GetClass('TFrame' + IntToStr(TabIndex + 1)); //加载
if not Assigned(cClass) then Exit;
frame := TComponentClass(cClass).Create(Self) as TFrame; if not Assigned(frame) then Exit;
Frame.Parent := Self; //动态加载
frame.align := alclient;
PageControl.ActivePage.Tag := -1; //给Tag 属性赋值,以便不进行重复操作
{initialization frame}
PostMessage(frame.Handle, WM_INITFRAME, 0, 0);
end;请各位大大不吝赐教。小弟拜谢!在线等!
我写了一个动态加载Frame的小程序,每次第一次运行的时候加载是正确的,但是第二次换页面再次加载的时候就不能够正常被加载!
程序代码如下,其中使用的TMS控件中的TAdvToolBarPager,通过它的页面变化,把Frame加载到Form 上!procedure Ts.FormCreate(Sender: TObject);
begin
AdvToolBarPager1.ActivePageIndex := 0; //首先动态加载一个页面
AdvToolBarPager1Change(AdvToolBarPager1);
end;procedure Ts.AdvToolBarPager1Change(Sender: TObject);
var
TabIndex: Integer;
cClass: TClass;
PageControl: TAdvToolBarPager;
frameName: string;
begin
PageControl := Sender as TAdvToolBarPager; //赋值
TabIndex := PageControl.ActivePageIndex; //赋值
if PageControl.ActivePage.Tag <> 0 then Exit; //如果已经存在,则不在重新加载 cClass := GetClass('TFrame' + IntToStr(TabIndex + 1)); //加载
if not Assigned(cClass) then Exit;
frame := TComponentClass(cClass).Create(Self) as TFrame; if not Assigned(frame) then Exit;
Frame.Parent := Self; //动态加载
frame.align := alclient;
PageControl.ActivePage.Tag := -1; //给Tag 属性赋值,以便不进行重复操作
{initialization frame}
PostMessage(frame.Handle, WM_INITFRAME, 0, 0);
end;请各位大大不吝赐教。小弟拜谢!在线等!
解决方案 »
- delphi中有没有比较好的根据源码生成函数调用关系图的控件? 急哟 100分
- 【押宝党】祝泰坦宝宝生日快乐,快快长大!!!
- 怎么找有相同类名的子控件的句柄啊?
- 怎样分别取得时间中的时分秒
- 怎样得到一个键的 Virtual key codes
- 本文站怎么插入本地的图片啊?
- g_strYe1Loc[1] := IntToStr(i)[1]?请问这是什么意思!
- 用多层结构,在客户端怎样向服务端提交一个TStringList
- 你能帮帮我吗?
- (十万火急) 请教各位怎样在delphi中让打印机只打印奇数页或偶数页?
- 关于禁止POP3,SMTP,WebMail 发送接收邮件.
- Hotkey 怎么显示num8了呢[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
procedure Ts.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
s:=nil;
end;
你内存还有驻留的东东。所以再次进去重建时出错,没试过,但应该free和nil就不会有问题。也可能只要其一就行了。