delphi - TChangeTabAction FMX XE7 - Embarcadero 的想法是什么?

标签 delphi tabcontrol firemonkey delphi-xe7 actionlist

将 TChangeTabAction 标准操作添加到我的操作列表后, 我写了一个这样的函数:

procedure TfrmMain.ChangeTab(TargetTab: TTabItem; Reverse: Boolean = False);
begin
  ChangeTabAction1.Tab := TargetTab;
  ChangeTabAction1.ExecuteTarget(Self);
end;

我这样称呼:

 ChangeTab(tsNewTemplate) // slides left
 // stuff
 ChangeTab(tsLogin); // slides right

及以后

ChangeTab(tsNewTemplate, True); // slides left
// stuff
ChangeTab(tsLogin, True); // slides right

而且我仍在尝试找出如何将 Reverse = True 功能添加到我的函数中!

问题是,每次调用 ChangeTabAction1.ExecuteTarget(Self); 时,ChangeTabAction1.Direction 都会自动反转! (切换)

因此,当选项卡从 tsStartUp 更改为 tsNewTemplate 时,它​​会向左移动,然后向右移动,然后向左向右移动,依此类推。

我想要它做的是

ChangeTab(tsNewTemplate) // slides left
// stuff
 ChangeTab(tsLogin); // slides left

及以后

ChangeTab(tsNewTemplate, True); // slides right
// stuff
ChangeTab(tsLogin, True); // slides right

我的 Tabcontrol 应用程序。比这个简单的 3 级示例复杂得多。我希望能够根据命令控制移位的方向。

ChangeTabAction1.Direction 指示器在通常意义上没有任何意义。您不能将其设置为“反向”并认为这意味着与正常相反。 executetarget 后立即反转变为正常,反之亦然。

procedure TfrmMain.ChangeTab(TargetTab: TTabItem; Reverse: Boolean = False);
begin
    // This keeps the slide direction going the same way
    // It cancels out the automatic reversal of direction
    if ChangeTabAction1.Direction = TTabTransitionDirection.Normal then
      ChangeTabAction1.Direction := TTabTransitionDirection.Reversed
    else
      ChangeTabAction1.Direction := TTabTransitionDirection.Normal; 

也许,如果有人可以告诉我 Embarcadero 设计师的想法,那么我就可以遵循他们的设计理念,而不是试图绕过它。

最佳答案

TTabTransitionDirection.Normal 表示对索引较低的选项卡的更改是通过从左到右的转换完成的,而对索引较高的选项卡的更改是通过从右到左的转换完成的。 TTabTransitionDirection.Reversed 的意思是相反。

关于delphi - TChangeTabAction FMX XE7 - Embarcadero 的想法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29900503/

相关文章:

delphi - 同步通用 TList 和 TListBox 时出现问题

delphi - 获取特定设备的驱动程序文件

delphi - 使用Delphi进行P2P连接

delphi - 通过 Delphi 的 API 发送短信

wpf - 如何使 WPF 选项卡控件的选项卡区域小于控件?

德尔福火猴网格: Invisible Columns When Navigating

sqlite - Delphi FDQuery选择没有列名的行

delphi - 波形分析仪的组件或代码

wpf - 如何删除 TabItem 内容的默认边距?

c# - WPF 从多个 View 模型将选项卡项添加到选项卡控件