【发布时间】:2021-11-14 15:07:05
【问题描述】:
我有一个带有 7 个选项卡的 PageControl 的表单。 我只想看到一些标签。一侧是选项卡 0、1、2、3、4 和 5,另一侧只有选项卡 6 和 7。然后,我依次渲染为不可见。 我有一个 DBNavigator,它更改 DBNavigatorClik 过程中的 DataSource 以控制已使用选项卡上的网格等。
以 2 Tab 为例
procedure TF_DatenErfassung.PageControl1Change(Sender: TObject);
begin
with (Sender as TPageControl) do
case PageControl1.Tabindex of
0:begin
DBNavigator1.DataSource:=F_ModuleTables.DS_MieteBezahlung;
end;
1:begin
DBNavigator1.DataSource:=F_ModuleTables.DS_T_JaresAbrechnung_Mieter;
end;
end;{case}
end;
在 FormActivate 过程中,我有 这段代码:
if ModuleTables.T_TABLE.FieldByName('NrDossier').AsString[1]<>'X' then
{A} begin
PageControl1.Pages[0].TabVisible:=false;
PageControl1.Pages[1].TabVisible:=true; {I want to work only on this Tab}
end
else
{B} begin
PageControl1.Pages[0].TabVisible:=true; {I want to work only on this Tab}
PageControl1.Pages[1].TabVisible:=false;
end;
当我在表单 PageControl 上的 {A} 上时,Tab 1 显然是第一个(在这种情况下是唯一的),Tab 0 不可见,只有 Tab 1 可见。但似乎对于 pageControl,这是 Tab 0 而不是 1 它只是更改了 Tab Index;有没有办法绕过;我试着放一个
PageControl1.ActivePageIndex:=1;
但它不在乎。在我看来,选项卡索引实际上是在创建页面时创建的,这不会造成问题,但在我的情况下它会造成问题。 有没有办法绕过它而不重新创建所有“轮子”。
【问题讨论】:
标签: delphi