如何将Delphi TPageControl"tab index"转换为"page index"?

Rod*_*ddy 5 delphi tpagecontrol

我正在使用TPageControl,其中某些页面不可见.

这打破了TabIndex和ActivePageIndex属性的正常1:1映射.

在大多数地方,我可以使用ActivePageIndex(或ActivePage本身)来获取当前页面,但我想要一个动态工具提示提示,这需要我确定哪个页面与特定选项卡索引相关联.

如果我调用pageControl.IndexOfTabAt(X,Y),我会得到一个Tab Index,但我不能直接使用它作为Pages []数组的索引,因为某些页面选项卡不可见.

我可以明确地遍历页面,忽略可见的页面,但感觉VCL中应该有一些东西已经为我做了这个......?

Ben*_*hDk 2

我查看 TPageControl (ComCtrls.pas) 的源代码,有一个私有方法:

function TPageControl.PageIndexFromTabIndex(TabIndex: Integer): Integer;
Run Code Online (Sandbox Code Playgroud)

这就是你想要的。但你不能调用它(D2007),所以(不幸的是)你必须复制代码。

  • 不仅不能调用,很多时候甚至无法正常工作!http://qc.embarcadero.com/wc/qcmain.aspx?d=30263 (2认同)