Firemonkey - 更新视觉组件

2024-05-04

我们从版本 1 开始就使用 Firemonkey,但仍然发现更新当前在屏幕上可见的组件很困难。在 Firemonkey 中请求重画的“方式”有很多,也许太多了:

  • 应用样式(ApplyStyle 事件) - 主要是当它在屏幕上可见时
  • 请求“.repaint” - 有些组件有这个
  • 请求“.realign” - 有时有效,当前版本的 FMX 似乎删除/隐藏它
  • 请求“.invalidate” - 某些组件(主要是表单)具有此功能
  • 请求“.invalidateRect” - 大多数组件都有这个
  • 手动调用ApplyStyle事件 - 不保证工作并且设计方面是不正确的......

鉴于缺乏平台文档,当组件已经显示时,是否有一种“明确定义”的方法来更改视觉外观(样式的内部值)? IE。已存在且在屏幕上可见的 listboxItem、TGrid 单元格等。非常感谢您的想法...


我认为没有一个统一的“正确方法”来刷新 Firemonkey 中组件的视觉效果。

然而,作为个人经验的建议,我会采取.repaint路线 - 该方法位于TControl级别,因此它位于基元和样式控件(通常由基元组成)之前,因此适用于所有视觉控件。它也不需要参数,所以它是一个很好的全面解决方案。

我注意到 Firemonkey 在自动正确地重新绘制控件方面始终存在问题。通常,我会留下控件/基元先前视觉效果的“阴影”,并且必须调用.repaint手动更新它。对于 FM2 和 FM3,这种情况明显变得更糟(大概是由于针对移动平台进行的优化),因此需要手动进行.repaint-- 尤其是当诸如TGlow就移动或旋转控件/基元而言,已成为我的标准做法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firemonkey - 更新视觉组件 的相关文章

  • Delphi线程死锁

    我有时会在销毁某些线程时遇到死锁问题 我尝试过调试该问题 但在 IDE 中调试时似乎从未存在死锁 可能是因为 IDE 中的事件速度较低 问题 当应用程序启动时 主线程会创建多个线程 线程始终处于活动状态并与主线程同步 完全没有问题 当应用程
  • Delphi TImageList 位图更改

    我正在使用 Delphi XE2 Update 3 Update 4 与我们的一些第 3 方组件不兼容 因此我们尚未更新 我在我的应用程序中使用 TImageList 我注意到很多时候当它从源视图切换到表单视图 F12 时 突然之前未修改的
  • delphi 变量值在循环中的线程中发生变化

    我的代码正在运行一个 for 循环来处理一些数据 如下所示 procedure printValue Value Integer begin TThread Synchronize TThread Current procedure beg
  • 如何避免使用 WinApi.Windows 的 Delphi 应用程序中的 dll 劫持

    Delphi 最新版本使用各种系统 dll 的静态链接 例如 WinApi Windows 单元中的 version dll 这会导致在单元初始化之前加载 version dll 这会打开一个安全漏洞 可以通过将受感染的 version d
  • Firemonkey 编辑/组合自动完成/打字时自动建议

    实施方式是什么Autocomplete or Autosuggest适用于 Windows Android 平台以及 MacOS 和 iOS 的 Delphi Firemonkey Example 当用户在 Google 搜索框中输入文本时
  • 当显示对话框时淡出应用程序的所有其他窗口?

    如何在 Delphi 2009 中调暗 淡出应用程序的所有其他窗口 Form 有一个 AlphaBlend 属性 但它仅控制透明度级别 但如果我们能有这样的东西那就太好了 集中窗口 http www anappaday com downlo
  • 如何根据输入的内容过滤组合框的内容?

    我们有一个包含 100 多个项目的组合框 当我们在组合框中输入字符时 我们想要过滤掉项目 例如 如果我们输入 ac 并单击下拉选项 那么我们希望它仅显示以 ac 开头的项目 我怎样才能做到这一点 也许您会更喜欢使用操作系统内置的自动完成功能
  • Delphi - 在修复 VCL 错误时,单元 x 是用不同版本的 x 编译的

    我正在使用 Delphi XE6 并在我的项目中使用 Datasnap 和 JSON 我想纠正 VCL 单元 System JSON pas 在 TJSONString ToString 函数中 中的一个错误 它应该转义反斜杠字符和引号 为
  • 带位图的简单组合框

    如何将位图放入组合框中并将样式设置为简单 例如 Google Chrome 的右侧有星号 Firefox 的右侧有箭头 我尝试了这段代码 procedure TForm2 ComboBox1DrawItem Control TWinCont
  • 如何将 REST API 与 FireMonkey 结合使用?

    我需要在 FireMonkey 中实现 REST API 来获取一些信息 但我不确定如何做到这一点 REST API使用OAuth2 我可以访问两个代码 Consumer Key和Consumer Secret 之后 我需要获得一个临时的
  • PySide / Python GUI 冻结

    我目前正在为 rvplayer 编写一个 GUI 它将使艺术家能够自动渲染带有板岩和老化信息的样片 GUI 使用 PySide 编写并使用 Python 2 7 编写脚本 我的问题是 在调用我的流程并更新我的QProgressBar使用 s
  • 有人用CrossKylix进行真正的跨平台开发吗?

    新版本克罗斯凯利克斯 http crosskylix untergrund net 两周前更新过 即使 Kylix 已经停产很久了 但它似乎仍然被一些 Delphi 开发人员使用 有人在 Windows 和 Linux 的跨平台开发中成功使
  • UIPickerView - 对多行行使用自定义视图 - 需要布局建议

    我有一个 UIPickerView 它将为用户显示项目列表 我希望每个项目都显示为多行文本 每行使用不同的字体大小 一个粗略的模型如下所示 这将允许显示比默认 UIPickerView 的单行所能容纳的更多文本 bdesham 指出我在 U
  • 将 Python 控制台集成到 GUI C++ 应用程序中

    I m going to add a python console widget into a C GUI below some other controls 许多类将暴露给 python 代码 包括一些对 GUI 的访问 也许我会考虑 P
  • JavaFX 中具有自定义内容的 ListView

    How i can make custom ListView with JavaFx for my app I need HBox with image and 2 Labels for each line listView 您可以通过查看
  • 当responseText包含有效的Xml时,IXMLHttpRequest.responseXml为空,没有解析错误

    我正在从中获取一些 XML政府网站 http www bankofcanada ca stats assets rates rss noon en all xml http www bankofcanada ca stats assets
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅
  • 如何从 VCL.Graphics 获取所有已注册的文件格式...但 64 位

    在我的 32 位应用程序中 我使用FindRegisteredPictureFileFormats 单元由 Cosmin Prund 提供 https stackoverflow com a 14677532 505088 gt 如何从图形
  • 如何在运行时(Delphi/Windows)程序中添加代码?

    我正在Windows XP Delphi 7上工作 我需要在正在运行的程序中添加一些过程 或函数 并且我不想在完成后再次重新编译它 我只有一个具有 5 个功能的主机应用程序来发送不同类型的警报 但是还有其他新的警报类型 所以我必须执行新的功
  • Mac 上的 Delphi - 可能吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我负责一个 Delphi Win32 项目管理应用程序 我刚刚完成了向 Delphi 2009 的迁移

随机推荐

  • 如何向 hr 标签添加一些文本?

    我试图在 hr 标签末尾添加一些文本 但到目前为止我还没有设法让它正常工作 我期待有一行 顶部有一些文字到最后 你可以在这里看到我的小提琴http jsfiddle net 2BHYr http jsfiddle net 2BHYr Edi
  • iOS Facebook 应用邀请:错误

    我必须在我的 iOS 应用程序中实现 Facebook 邀请 我正在关注以下参考链接 https developers facebook com docs app invites ios https developers facebook
  • 如何用 NumPy 求解齐次线性方程?

    如果我有这样的齐次线性方程 array 0 75 0 25 0 25 0 25 1 1 0 0 1 0 1 0 1 0 0 1 我想得到它的非零解 怎样才能做到NumPy http en wikipedia org wiki NumPy E
  • 无法以管理员身份更改 Windows 10 中的系统变量路径

    我正在 Windows 10 计算机中安装 Java JDK 需要通过在 Windows 设置中编辑系统变量来注册其路径 但我以管理员和普通用户身份尝试过 但它不允许我添加路径 甚至复制粘贴或仅添加任何角色 在 Win 8 中执行此操作没有
  • PHP 与 MySQL 中的资源 id #6 错误

    我这是为了我正在制作的投票系统 此代码向用户显示了他们可以从中选择的问题列表 div class main questions p class style1 style2 strong Select Your Question strong
  • 如何处理 Lollipop 5.1 上的快速滚动?

    背景 我制作了一个小型库 它展示了如何模仿 Android Lollipop 的股票联系人应用程序的风格 here https github com AndroidDeveloperLB ListViewVariants 问题 看来在And
  • 使用 xclip 将剪贴板内容粘贴到 bash 中的变量中

    我知道这个命令会将剪贴板内容粘贴到文件中 xclip out selection clipboard gt gt file txt 如果我想将剪贴板内容粘贴到变量 如字符串 中 我该怎么办 要将命令的输出分配给变量 可以使用命令替换 myv
  • .attr('disabled', 'disabled') 或 .attr('disabled', true) 用于禁用输入

    Both attr disabled disabled and attr disabled true 在我的代码中工作 但我只是想知道 两者中哪一个更有效和 或哪一个更常用 真的有区别吗 也许是性能方面 应该没有什么区别 但从 jQuery
  • WebRTC 暂停和恢复流

    我正在尝试使用 WebRTC 构建一个 Web 应用程序 当某些事件触发时需要暂停 恢复视频 音频流 我已经尝试过getTracks 0 stop 但我不知道如何恢复流 对此有什么建议吗 谢谢 getTracks 0 stop 是永久的 U
  • 如何避免在 std::pair 中“隐式”调用单参数构造函数

    最初的问题是如何与std map
  • 使用 SAML 2.0 进行 Scala Play Web 应用程序的 SSO

    我正在构建一个 scala play Web 应用程序 我需要使用支持 SAML v2 0 的 IdP 构建 SSO 功能 除了 SSO 之外 我还需要根据从 IdP 收到的角色 作为身份验证断言消息的属性 在应用程序内构建授权机制 我是
  • 为什么“not(True) in [False, True]”返回 False?

    如果我这样做 gt gt gt False in False True True 那返回True 仅仅是因为False在列表中 但如果我这样做 gt gt gt not True in False True False 那返回False 然
  • Golang 中的“相互”包导入

    是否可以在 Golang 中执行 相互 包导入之类的操作 举例来说 我有两个包 A 和 B 分别具有 AFunc 和 BFunc BFunc2 函数 package A import B func AFunc do stuff but al
  • 保存 Mongoose 文档时出现版本错误

    我有一个问题 不确定我是否做错了什么或者这是一个错误 我有一些产品 每一种都有一系列的变体 我想浏览一些数据并以这些变体加载它 但我遇到了许多 版本错误 找不到匹配的文档 错误 认为我遇到了竞争条件 我为我修改的每个变体依次保存相同的文档
  • d3.js V4 按钮缩放实现表现得很奇怪

    我正在尝试实现 d3 平移和缩放功能 默认的平移和缩放工作正常 但要求是我们还需要放大和缩小按钮 我还实现了缩放按钮 它也有效 奇怪的是 当我第一次移动图像并单击缩放按钮时 图像会移回到以前的位置 不仅是当我第一次用鼠标缩放并使用按钮再次开
  • 如何从计算函数内部更新其他字段或其他模型?

    有3个班级 sync test subject a与有很多关系sync test subject b继承自sync test subject c sync test subject b s separated chars字段通过称为的计算函
  • 使用 NumPy loadtxt/savetxt 指定编码

    使用 NumPyloadtxt and savetxt只要涉及非 ASCII 字符 函数就会失败 这些函数主要用于数字数据 但也支持字母数字页眉 页脚 Both loadtxt and savetxt似乎正在应用 latin 1 编码 我发
  • 将文件编码为 Base 64 Nodejs

    我使用下面的代码将文件编码为 Base64 var bitmap fs readFileSync file return new Buffer bitmap toString base64 我认为在文件中我们有问题 and 字符 但它很好
  • EntityFramework 6 中的 IDbCommandInterceptor 线程安全吗

    使用 DbInterception add 方法注册时 IDbCommandInterceptor 实例是否被视为线程安全 我已经实现了一个符合 IDbCommandInterceptor 接口的类 并且正在跟踪调用其中一个执行方法时命令的
  • Firemonkey - 更新视觉组件

    我们从版本 1 开始就使用 Firemonkey 但仍然发现更新当前在屏幕上可见的组件很困难 在 Firemonkey 中请求重画的 方式 有很多 也许太多了 应用样式 ApplyStyle 事件 主要是当它在屏幕上可见时 请求 repai