小编Jau*_*ron的帖子

为什么 TCategoryPanel.controls[i].className 总是“TCategoryPanelSurface?

在表格上,我放下了 1 个TCategoryPanelGroup对象并添加了 3 个TCategoryPanel。在例程中,我需要TCategoryPanel遍历每个对象并遍历每个对象到这些面板上以产生输出。

所以,这里是代码......为什么进入第二FOR而不是给我的className每个组件(即TButtonTLabel等),它给出了一个TCategoryPanelSurface

简短的问题:如何从每个 TCategoryPanel 访问每个控件?


procedure TForm1.Button2Click(Sender: TObject);
    var i,i2 : integer;

    begin
      for i := 0 to CategoryPanelGroup1.ControlCount-1 do
      begin
        showMessage((CategoryPanelGroup1.Controls[i] as TCategoryPanel).caption ) ;

        for i2 := 0 to (CategoryPanelGroup1.Controls[i] as TCategoryPanel).ControlCount-1 do
        begin

          showMessage((CategoryPanelGroup1.Controls[i] as TCategoryPanel).Controls[i2].ClassName);
        end;
      end;
    end;
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2010

4
推荐指数
1
解决办法
1224
查看次数

TCategoryPanel 到 TCategoryPanelGroup 的顺序

我得到了一个完整的 Delphi 应用程序,其中包含 32 种不同的数据输入表单。我有 1 个主 TCategoryPanelGroup,上面有 115 个不同的 TCategoryPanel。

我们在每个表单上找到了 6 个主要 TCategoryPanel(main1 到 main6),并且我们向每个表单添加了一些特定的(specified1、2、3 等)TCategoryPanel。

所有表单都已在应用程序中预先构建,而不是在运行时构建。

这就是我管理这些表格的方式(32 个表格,每个表格平均有 10 个信息面板)

  • 在运行应用程序之前,所有面板都是可见的,并且所有面板的顺序都正确;
  • 用户选择了 32 种形式之一;
  • 我确实按顺序显示(visible true)这些面板:main1、main2、main3、special1、special2、main4、main5 和 main6;
  • 然后我向用户展示表单;
  • 关闭表单时,我按顺序隐藏(visible false):main6,main5,main4,特定2,特定1,main3,main2和main1;

用户可能会打开另一个不同的表单(从 32 开始),并且相同的过程会再次进行。但不知何故,面板的顺序并不总是与我展示的(可见真实的)它们相同。

有时,specific1 面板出现在 main1 之前,甚至在 main6 之后。第一个打开的表格总是好的,打开和关闭不同的表格后,所有面板订单都混合了。

我花了一些时间在网上查找,试图了解 TCategoryPanelGroup 在显示和隐藏面板时管理面板顺序的方式,然后你就可以了,我需要帮助。

好吧,问题很简单,是否有不同的方法来管理 TCategoryPanelGroup 上的面板顺序以满足我的需求?我们可以简单地让它们可见而不是重新排列顺序吗?

到目前为止,我主要关注这两个链接,以获得类似但无法理解的内容:

http://www.devsuperpage.com/search/Articles.aspx?G=2&ArtID=92075 http://codeverge.com/embarcadero.delphi.vcl.using/order-of-tcategorypanels-on-tcat/1066818

我的MCVE

在这里下载

特定面板的注意事项:

  • 表格#1 = 4
  • 表格#2 = 2
  • 表格 #3 = 3
  • 表格 #4 = 2

测试A:

  1. 打开表格 #1 {好的}
  2. 关闭它
  3. 打开表格 #3 {好的}
  4. 关闭它
  5. 打开表格 #1 …

delphi delphi-2010

3
推荐指数
1
解决办法
1223
查看次数

标签 统计

delphi ×2

delphi-2010 ×2