在表格上,我放下了 1 个TCategoryPanelGroup对象并添加了 3 个TCategoryPanel。在例程中,我需要TCategoryPanel遍历每个对象并遍历每个对象到这些面板上以产生输出。
所以,这里是代码......为什么进入第二FOR而不是给我的className每个组件(即TButton,TLabel等),它给出了一个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 应用程序,其中包含 32 种不同的数据输入表单。我有 1 个主 TCategoryPanelGroup,上面有 115 个不同的 TCategoryPanel。
我们在每个表单上找到了 6 个主要 TCategoryPanel(main1 到 main6),并且我们向每个表单添加了一些特定的(specified1、2、3 等)TCategoryPanel。
所有表单都已在应用程序中预先构建,而不是在运行时构建。
这就是我管理这些表格的方式(32 个表格,每个表格平均有 10 个信息面板)
用户可能会打开另一个不同的表单(从 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
特定面板的注意事项:
测试A: