RzPageControl使用中的问题

屠龙刀 2013-12-19 09:21:13
我用RzPageControl实现多标签页.但是发现操作某一个窗口的组件的时候.会出错。

TabSheet1是欢迎页面.主窗口建立的时候。我就把TabSheet1显示出来(把form2放进去)
用的以下过程
ShowDockForm(TForm2, RzPageControl1);

。然后我修改欢迎窗口(form2) 上某一个组件就出错.

procedure TForm1.Button1Click(Sender: TObject);
begin

form2.Visible:=true;
RzPageControl1.ActivePageIndex:=0;(默认的第一个是欢迎界面)
Form2.Edit1.Text:='1';
end;
出错....我这是举个例子测试.但是出错。
RzPageControl多标签中.操作窗口需要注意什么吗。请高手指教.
...全文
240 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
屠龙刀 2013-12-19
  • 打赏
  • 举报
回复
再问一下。如果是form3上自己有一个按钮.改变自己的Image1怎么写,刚那个是别的窗口来改他的。现在自己页面上有个窗口要是改呢
屠龙刀 2013-12-19
  • 打赏
  • 举报
回复
明白了.谢谢。还有需要再找你..
sololie 2013-12-19
  • 打赏
  • 举报
回复
这个示例它自己封装了一个TDockTabSheet类和ShowDockForm方法,具体你看那个ShowDockForm方法就知道了 那个窗口是在ShowDockForm中动态创建的

    Form := FormClass.Create(TabCtrl);
    LockWindowUpdate(TabCtrl.PageControl.Handle);
    with Form do
      try
        ManualDock(TabCtrl);
        ShowCaption(TabCtrl, Caption);

        Show;
        Form.WindowState := wsMaximized;
        Form.Align := alClient;
        TabCtrl.Data := Form; // 这里保存了当前出创建的窗体的引用
      except
        Free;
      end;
  finally
sololie 2013-12-19
  • 打赏
  • 举报
回复
或者这样,清晰一点

procedure TForm1.Button1Click(Sender: TObject);
var
  f2: TForm2;
begin
  RzPageControl1.ActivePageIndex := 0;
  f2 := TForm2(RzPageControl1.Pages[RzPageControl1.ActivePageIndex].Data);
  f2.Edit1.Text := '测试';
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  f3: TForm3;
begin
  RzPageControl1.ActivePageIndex := 1;
  f3 := TForm3(RzPageControl1.Pages[RzPageControl1.ActivePageIndex].Data);
  if
    f3.openpicturedialog1.execute then
  begin
    RzPageControl1.ActivePageIndex := 0;
    f3.Image1.Picture.loadfromfile(f3.openpicturedialog1.filename);
  end;
end;
屠龙刀 2013-12-19
  • 打赏
  • 举报
回复
有没有窗口操作方便的多标签的方法。
屠龙刀 2013-12-19
  • 打赏
  • 举报
回复
这个正是我想要的疑问。 但是.为什么要那样的格式啊.要是我以后数据量很大的窗口要给窗口元素赋值也必须这样的格式吗。谢谢回答。马上结帖
sololie 2013-12-19
  • 打赏
  • 举报
回复

procedure TForm1.Button1Click(Sender: TObject);
begin
  RzPageControl1.ActivePageIndex := 0;
  TForm2(RzPageControl1.Pages[RzPageControl1.ActivePageIndex].Data).Edit1.Text
    := '测试';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  RzPageControl1.ActivePageIndex := 1;
  if
    TForm3(RzPageControl1.Pages[RzPageControl1.ActivePageIndex].Data).openpicturedialog1.execute then
  begin
    RzPageControl1.ActivePageIndex := 0;
    TForm3(RzPageControl1.Pages[RzPageControl1.ActivePageIndex].Data).Image1.Picture.loadfromfile(
      TForm3(RzPageControl1.Pages[RzPageControl1.ActivePageIndex].Data).openpicturedialog1.filename);
  end;
end;
屠龙刀 2013-12-19
  • 打赏
  • 举报
回复
http://yunpan.cn/QDrVTQ4IEPYND 谢谢哦。在这了
sololie 2013-12-19
  • 打赏
  • 举报
回复
传百度云盘、360云盘,或是点右上角的“资源”,上传到那里
屠龙刀 2013-12-19
  • 打赏
  • 举报
回复
好的。你有QQ吗。发我我传你看
sololie 2013-12-19
  • 打赏
  • 举报
回复


那个下载来的加个edit上去根本没出错,你把你弄错的项目发来
屠龙刀 2013-12-19
  • 打赏
  • 举报
回复
http://www.codefans.net/soft/12856.shtml 就这个。 我在form3上放一个edit...我在主窗口上点个按钮..给form3.edit2.text:='测试' 会出错.怎么解决.
sololie 2013-12-19
  • 打赏
  • 举报
回复
懒得、也不想看了 把你的项目发上来,俺给你放delphi里跑一下调试调试得了
屠龙刀 2013-12-19
  • 打赏
  • 举报
回复
http://www.codefans.net/soft/12856.shtml 这有个例子。假如我在那个form3上有个edit1. 我要form3.edit1.text:='1'会出错。 谁知道怎么解决.(edit1.text是为了测试方便。我是要换背景的时候出错的 if openpicturedialog1.execute then begin RzPageControl1.ActivePageIndex:=0; form3.Image1.Picture.loadfromfile(openpicturedialog1.filename); end; 出错.

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧