问题标签 [tactionmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1411 浏览

c# - Visual Studio 中是否有 Delphi 的 ActionManager 替代品

我对 VS 和 C# 比较陌生,但在 Delphi 方面有多年经验。在 Delphi 中设计 GUI 时我最喜欢的组件之一是 ActionManager - 为操作分配事件处理程序以及启用/禁用它们的集中方式。令人惊讶的是,我在 Visual Studio 2008 Professional 中找不到类似的东西。我确信应该有第三方实现,但我更喜欢标准的东西。

有人可以为此建议我吗?也许有一些替代方法可以有效地管理我缺少的 GUI 操作?

0 投票
1 回答
1502 浏览

delphi - 你如何迭代动作管理器中包含的动作 - Delphi 2007

我将 D2007 用于一个项目,该项目在 actionmanager 中有许多动作,然后在动作工具栏和菜单中使用。我还将它们分类(例如文件、工具、输入等)。我想通过在 actionmanager 中迭代一个列表来启用/禁用单个操作或一组操作(例如输入)。actionmanager 中的 actions 属性返回 TContainedAction,这不是完成我的任务所需要的。有谁知道我需要迭代的正确集合在哪里?提前致谢。

0 投票
1 回答
872 浏览

delphi - Delphi 2009 Actionmanager 默认Imagelist

我刚刚开始了一个新项目,我是第一次使用 Delphi 2009 Actionmanager 组件。Actionmanager 有一个标准操作列表,它为我提供了诸如文件打开/保存等操作,而无需任何编码 - 很棒的东西。是否有一个标准的 ImageList 来配合这个,由 ActionManager 填充的默认 ImageIndex 的正确图像?

0 投票
1 回答
3899 浏览

delphi - Delphi:如何在 ActionManager 中添加新类别?

我希望按类别组织我的操作,但在“类别”框中,我无法添加新类别。

当我单击添加标准操作时,它具有不同的类别,例如“编辑”、“Internet”、...。甚至可以有自定义类别还是我被默认类别卡住了?

0 投票
1 回答
3341 浏览

delphi - 如何以编程方式将动作添加到 Delphi 2010 中的动作管理器

我正在尝试动态添加操作项,我可以添加该项目,并且当我这样做时它可以工作:

但是,当动作 Execute 方法触发时,我尝试从 Sender 对象中获取 ActionComponent,如下所示:

但 ActionComponent 始终为零。为什么 ActionComponent 没有被初始化?

0 投票
1 回答
1100 浏览

delphi - 如何在运行时将 TAction 分配给工具栏按钮?

我根据设置文件动态添加工具栏按钮。我想将 TAction 分配给他们。现在我添加了带有动作 OnExecute 处理程序的 OnClick 事件,但是如果禁用了动作,则工具栏按钮不会自动禁用,例如在设计时添加的 TMenuItems。

因此,换句话说,我希望使用 IDE 中的“Action”下拉菜单来分配 TAction 的设计时运行时版本。

这是我到目前为止所做的(代码是 C++,但它的作用很明显)。

这会将按钮添加到工具栏,它似乎遵循动作启用/禁用状态,但单击时没有任何反应。如何正确且完整地添加操作?

0 投票
4 回答
6908 浏览

delphi - 如何禁用非模态形式的所有组件?

设想:

  • 一个 TActionManager、一个 TAction 和一个 TButton(与此操作相关联)
  • ActionManager 在其 OnUpdate 事件处理程序中不断启用 Action
  • 动作事件处理程序中的代码使用 ShellExecAndWait 方法启动外部程序(使用 Jedi 代码库 JCL)
  • 要求:应用程序不应允许通过再次快速单击按钮来启动应用程序两次

问题:

  • ShellExecAndWait 不会阻塞应用程序消息循环,因此用户可以在外部应用程序仍处于打开状态时单击
  • 如果 Action 处理程序方法在调用 ShellExecAndWait 之前禁用 Action,Update 方法将立即重新启用它

所以我可以这样写

有没有更简单的方法?正如这个问题的标题所说 - 我可以阻止输入以执行外部应用程序吗?

0 投票
1 回答
810 浏览

delphi - MDI 应用程序中的 TActionManager。失败的行动

我有一个 MDI 应用程序,我正在使用 TActionManager 来管理我的应用程序中的操作,这也意味着它包含我的 MDIChild 表单的操作。

这是一个重新创建我的问题的简单示例:

使用 2 个表单创建一个新的 VCL Forms 应用程序。Form1 & Form2 在 Form1 上放置一个 TButton 和一个 TActionManager。使用 TActionManager 的弹出编辑器创建 2 个 TAction。为 Form1 设置 FormStyle := fsMDIForm。为 Form2 设置 FormStyle := fsMDIChild。

将此代码添加到相应的事件:

将 TActionToolBar 拖放到 Form2 上。使用 TActionManager 弹出编辑器将 Action1 和 Action2 放在此 TActionToolBar 上。保存并运行。单击 Form1 上的按钮以显示 Form2。一切都按预期工作。现在关闭 Form2 并重新打开它。缺少动作...

知道我真的需要使用 TActionManager,有没有办法避免丢失我的操作?

0 投票
1 回答
624 浏览

delphi - 如何从 TActionManager 获取所有 TAction?

我的应用程序中有一个TActionManager,其中定义了所有操作。我需要获取其所有操作的列表;目前,使用它的 Actions 属性,我可以获得动作 ( GetNamePath) 的“路径”,但我也想获得它的标题。

是否可以从动作管理器获取所有动作?

0 投票
1 回答
273 浏览

delphi - 一个项目中 TActionManager 组件的数量

我在许多项目中都使用了 D7 中的 TActionLists,每个项目都使用一个似乎相关的 TForm。现在,在 XE2 上开始一个新项目,用户需要一个功能区,这似乎需要一个 TActionManager。

在线阅读和文档并没有让我清楚地了解如何以开发方式使用 TActionManager。我的问题是:

  • 我应该只在 ex 中放一个 TActionManager 吗?TDataModule 还是我应该坚持我通常的程序,并在每个 TForm 上放一个?
  • 我应该将它与 TActionLists 一起使用,还是仅用于现有项目,TActionManager 稍后会介绍?
  • 在 SDI 或 MDI 应用程序中使用 TActionManager 时需要注意什么?
  • 链接到示例等表示赞赏。

谢谢,

/米克尔