问题标签 [taction]
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.
delphi - 使用 Vcl 样式时更改 TActionMainMenuBar 的字体
通常可以像这样更改 TActionMainMenuBar 或 TMainMenu 的字体:
使用 Vcl 样式时,如果为组件注册了 StyleHook,则不再可能。我进入位图样式设计器(以前称为 Vcl 样式设计器)并更改了MenuItemTextNormal的字体。
问题是更改字体没有任何作用,我只能成功更改文本的颜色。
显然我在这里遗漏了一些东西,为什么我可以更改颜色而不是字体?
delphi - 将 TAction 用于“仅图标”TButton
我有一个用于菜单项和 TButton 的 TAction。我希望菜单项显示标签,而 TButton仅显示图标。但是,当一个 Action 被分配时,Vcl 会自动设置 TButton 的 Caption 属性,我无法摆脱它。
有任何想法吗?
windows - 为什么:可见,控制分配的 TAction 会影响应用程序的 CPU 使用率?
如果 aTAction
链接到诸如TToolButton
( Item of TToolBar
) 或TActionClientItem
( Item of TActionToolBar
) 之类的对象,并且该对象在运行时可见,那么每当您在表单中移动鼠标(工具栏以外的任何位置)时,似乎都会完成额外的负载根据可见 TAction 的数量在 CPU 上进行比较,这与在前面提到的任何一个条上都看不到任何 TAction 链接的项目时移动鼠标进行比较。
很明显,完成的额外负载的显着百分比完全取决于您正在运行的钻机类型,但我注意到的是,当您的应用程序具有以下功能时,实际差异可能会很大:
- 很多可见的 TAction 链接项目
- 一个自定义组件,已经对 onMouseOver 事件执行了较小的计算,例如更改控件的外观
- 自定义视觉样式
那么问题来了,为什么可见项链接的 TAction 组件会影响鼠标移动的处理?
c++builder - 如何在 TActions Execute 方法中转换为 TMenuItem?
我在 CodeGear C++ VCL 应用程序中有许多相关的 TMenuItem。
每个 TMenuItem 都与同一个动作 (TAction) 相关联。
单击 MenuItem 时,将触发操作(即其执行方法)。
我将需要以某种方式在操作 OnExecute 函数中转换 Sender 参数,以确定单击了哪个菜单项。
目前我有这样的东西
但以上不起作用动作所有者不是MenuItem。
delphi - 具有在运行时创建的操作的工具按钮
我在工具栏中使用 Delphi 2009 Toolbuttons 创建,如下所示:创建 TToolbutton 运行时
不同之处在于我也在运行时分配了一个动作。我的代码如下:
当我留下线条(标记的问题)时,我看到以下奇怪的行为:
我按下按钮并触发分配的操作,但按钮左侧的两个按钮设置为向下。当我再次按下另一个按钮时,左边的两个按钮向下,前面的按钮向上。
我需要帮助,我不知道原因
亲切的问候
克里斯汀
delphi - TAction.OnUpdate 事件是否会降低性能?
在Delphi XE7中,我使用这个技巧来自动启用或禁用一个工具栏按钮(“编辑ListView项目”),根据是否选择了ListView中的项目,以防止用户在没有ListView的情况下点击按钮选择的项目:
- 将 TActionList 放在 VCL 表单上。
- 在 ActionList 中创建一个动作
actTest
。 - 在窗体上放置一个 TButton。
- 将操作分配
actTest
给按钮。 - 在窗体上放置一个 TListView。
- 在 ListView 中创建两个项目。
如果
/li>OnUpdate
发生actTest
动作,请写:
现在您可以看到按钮根据是否选择了 ListView 中的项目而启用或禁用,这与您是使用鼠标还是使用键盘还是以编程方式选择/取消选择项目无关。
但是,在 CodeSite Live Viewer 中,我可以看到该事件被连续且非常频繁地actTestUpdate
触发,因此该语句被执行得非常频繁。actTest.Enabled := ListView1.SelCount > 0;
所以我的问题是:这会降低性能吗?如果是,是否还有其他技巧可以实现上述目的?
delphi - 当要显示的项目太多时如何让 TActionMainMenuBar 下拉项目滚动
有谁知道如何使用 TThemedPopupMenu 让 TActionMainMenuBar 像标准菜单一样工作,如果屏幕上有太多项目(垂直)无法容纳,则会出现两个滚动按钮(一个顶部,一个底部)?
我努力了:
- 将 TActionMainMenuBar.Orientation 设置为 boTopToBottom 并将 TActionMainMenuBar.AllowScrolling 设置为 true - 这使得表单上的栏具有滚动条,您实际上看不到顶部项目。
它看起来像这样:
而不是这样的:
- 将 TThemedPopupMenu.Orientation 设置为 boTopToBottom 并将 TThemedPopupMenu.AllowScrolling 设置为 true。这具有水平挤压下拉菜单的效果,图标和快捷方式相互叠加。
之所以设置这些属性是因为 TCustomActionDockBar.SetAllowScrolling 只有在“AllowScrolling and (Orientation = boTopToBottom))”时才设置为true
我在互联网上找到的关于这类事情的唯一参考是 Brian Long 的“动作、动作列表和动作管理器”
有谁知道是否可以让动作管理器垂直滚动?或者有任何参考资料可以帮助我吗?</p>
delphi - Delphi 默认数据集操作 Tdatasetdelete
Delphi 的奇妙之处之一是 TActionlist。更好的是默认的 TActions,比如 TDataset-actions。我有一个带有几个简单表格的表格。所以我让 Delphi 通过几个 TDatasetinsert/delete/edit 等来决定哪个数据源/表处于活动状态。
但现在我希望删除操作有一个对话框“你确定”之类的。如果我干预动作的执行事件,则动作似乎在对话后停止。所以我想像 somedatasource.dataset.delete 一样自己做删除操作。但我不知道这个 TDatasetdelete 是哪个数据源处于活动状态。
TDatasetdelete 有一个 datasource 属性,但默认为 nil 并且读取它会导致访问冲突。即使我不分配它,当 TDatasetdelete 执行时,也会从我的一个数据源中删除一个数据行。在这种情况下,我如何找出哪个数据源是“活动的”,换句话说,它在执行时将使用哪个数据源。
android - FMX - TAction OnUpdate 不起作用
我有一个 FMX 表单,其中包含一个按钮和一个带有 TAction 'Action1' 的 TActionList。Action1 有一个Execute 过程和一个Update 过程,并且按钮的属性'Action' 设置为Action1。
如果我在 Windows 上运行应用程序,它会进入 OnUpdate 事件并执行它应该做的所有事情;如果我在 Android 设备上运行它,它不会进入 OnUpdate 事件。
为什么会发生这种情况,我该如何解决?
编辑: 我正在使用 Delphi 10.2