问题标签 [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.
c# - Visual Studio 中是否有 Delphi 的 ActionManager 替代品
我对 VS 和 C# 比较陌生,但在 Delphi 方面有多年经验。在 Delphi 中设计 GUI 时我最喜欢的组件之一是 ActionManager - 为操作分配事件处理程序以及启用/禁用它们的集中方式。令人惊讶的是,我在 Visual Studio 2008 Professional 中找不到类似的东西。我确信应该有第三方实现,但我更喜欢标准的东西。
有人可以为此建议我吗?也许有一些替代方法可以有效地管理我缺少的 GUI 操作?
delphi - 你如何迭代动作管理器中包含的动作 - Delphi 2007
我将 D2007 用于一个项目,该项目在 actionmanager 中有许多动作,然后在动作工具栏和菜单中使用。我还将它们分类(例如文件、工具、输入等)。我想通过在 actionmanager 中迭代一个列表来启用/禁用单个操作或一组操作(例如输入)。actionmanager 中的 actions 属性返回 TContainedAction,这不是完成我的任务所需要的。有谁知道我需要迭代的正确集合在哪里?提前致谢。
delphi - Delphi 2009 Actionmanager 默认Imagelist
我刚刚开始了一个新项目,我是第一次使用 Delphi 2009 Actionmanager 组件。Actionmanager 有一个标准操作列表,它为我提供了诸如文件打开/保存等操作,而无需任何编码 - 很棒的东西。是否有一个标准的 ImageList 来配合这个,由 ActionManager 填充的默认 ImageIndex 的正确图像?
delphi - Delphi:如何在 ActionManager 中添加新类别?
我希望按类别组织我的操作,但在“类别”框中,我无法添加新类别。
当我单击添加标准操作时,它具有不同的类别,例如“编辑”、“Internet”、...。甚至可以有自定义类别还是我被默认类别卡住了?
delphi - 如何以编程方式将动作添加到 Delphi 2010 中的动作管理器
我正在尝试动态添加操作项,我可以添加该项目,并且当我这样做时它可以工作:
但是,当动作 Execute 方法触发时,我尝试从 Sender 对象中获取 ActionComponent,如下所示:
但 ActionComponent 始终为零。为什么 ActionComponent 没有被初始化?
delphi - 如何在运行时将 TAction 分配给工具栏按钮?
我根据设置文件动态添加工具栏按钮。我想将 TAction 分配给他们。现在我添加了带有动作 OnExecute 处理程序的 OnClick 事件,但是如果禁用了动作,则工具栏按钮不会自动禁用,例如在设计时添加的 TMenuItems。
因此,换句话说,我希望使用 IDE 中的“Action”下拉菜单来分配 TAction 的设计时运行时版本。
这是我到目前为止所做的(代码是 C++,但它的作用很明显)。
这会将按钮添加到工具栏,它似乎遵循动作启用/禁用状态,但单击时没有任何反应。如何正确且完整地添加操作?
delphi - 如何禁用非模态形式的所有组件?
设想:
- 一个 TActionManager、一个 TAction 和一个 TButton(与此操作相关联)
- ActionManager 在其 OnUpdate 事件处理程序中不断启用 Action
- 动作事件处理程序中的代码使用 ShellExecAndWait 方法启动外部程序(使用 Jedi 代码库 JCL)
- 要求:应用程序不应允许通过再次快速单击按钮来启动应用程序两次
问题:
- ShellExecAndWait 不会阻塞应用程序消息循环,因此用户可以在外部应用程序仍处于打开状态时单击
- 如果 Action 处理程序方法在调用 ShellExecAndWait 之前禁用 Action,Update 方法将立即重新启用它
所以我可以这样写
有没有更简单的方法?正如这个问题的标题所说 - 我可以阻止输入以执行外部应用程序吗?
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,有没有办法避免丢失我的操作?
delphi - 如何从 TActionManager 获取所有 TAction?
我的应用程序中有一个TActionManager
,其中定义了所有操作。我需要获取其所有操作的列表;目前,使用它的 Actions 属性,我可以获得动作 ( GetNamePath
) 的“路径”,但我也想获得它的标题。
是否可以从动作管理器获取所有动作?
delphi - 一个项目中 TActionManager 组件的数量
我在许多项目中都使用了 D7 中的 TActionLists,每个项目都使用一个似乎相关的 TForm。现在,在 XE2 上开始一个新项目,用户需要一个功能区,这似乎需要一个 TActionManager。
在线阅读和文档并没有让我清楚地了解如何以开发方式使用 TActionManager。我的问题是:
- 我应该只在 ex 中放一个 TActionManager 吗?TDataModule 还是我应该坚持我通常的程序,并在每个 TForm 上放一个?
- 我应该将它与 TActionLists 一起使用,还是仅用于现有项目,TActionManager 稍后会介绍?
- 在 SDI 或 MDI 应用程序中使用 TActionManager 时需要注意什么?
- 链接到示例等表示赞赏。
谢谢,
/米克尔