如何在其自身事件中释放控件?

2024-02-17

我有一个清单TPanels在 FMX 应用程序中,如果我单击面板,我想释放它。

直接在 Onclick 处理程序中释放它们不是正确的方法,因为我遇到了访问冲突。我不想使用windowsmessages(推荐于如何释放其事件处理程序内部的控制权? https://stackoverflow.com/questions/2502565/how-to-free-control-inside-its-event-handler and 当我在自己的 OnClick 处理程序中销毁按钮时,为什么我的程序会崩溃? https://stackoverflow.com/questions/3359552/why-does-my-program-crash-when-i-destroy-a-button-in-its-own-onclick-handler)因为它是一个 firemonkey 应用程序,我不知道这些消息在 android 和 mac 上如何工作。

还有其他解决方案吗?


Use myObject.Release http://docwiki.embarcadero.com/Libraries/XE8/en/FMX.Types.TFmxObject.Release:

将此 TFmxObject 对象标记为延迟删除。

此方法中的立即操作:

  • 设置父级 = nil
  • 将对象插入延迟删除列表

延迟行动:

  • 从列表中释放对象(vPurgatory).

记住这个方法Free(和程序FreeAndNil) 不会在移动平台中删除对象本身:

// 在 ARC 下,这个方法实际上并没有被调用,因为编译器会进行翻译 // 调用只是对实例变量进行 nil 赋值,然后调用 _InstClear

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

如何在其自身事件中释放控件? 的相关文章

  • 如何用方向键移动div

    我想使用 jQuery 用箭头键移动 div 所以右 左 下 上 找到了我想要完成的演示here http atomicrobotdesign com blog htmlcss move objects around the canvas
  • Delphi XE5 REST/Android 客户端“会话已过期”

    我有一个REST Server与Android Client 都在Deplhi Xe5 Android客户端成功连接Rest服务器 在我的服务器中我有一个TDSHttpWebDispatcher with SessionTimeout 12
  • DataGridView SortCompare 事件不会触发

    使用 VS2008 C 和 NET 3 5 我正在使用数据绑定 DataGridView 控件来显示从 Web 服务读取的表格数据 在某些情况下 有一个数字列需要排序 我尝试了几种不同的方法来使其工作 但该列最终仍然按字母顺序排序 即 1
  • 在TImageViewer中,如何获取用户点击图片的位置?

    在TImageViewer控件中 用户可以缩放或平移图片 我的问题是 当用户点击图片时 如何获取用户在图片上的点击位置 尤其是用户可以对图片进行放大 缩小或平移之后 如何获取对应的图片点击位置呢 As shown below How to
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 变量值更改时的 PyQt 事件

    我有一个变量 t t 0 我想在 t 值发生变化时启动一个事件 如何 没有 valuechanged connect 属性或任何变量 对于全局变量 单独使用赋值是不可能的 但对于属性来说非常简单 只需使用property https doc
  • 寻找领域事件的例子

    有谁知道在哪里可以找到域事件实现的示例代码 如乌迪 达汉 http www udidahan com in 领域事件 救赎 http www udidahan com 2009 06 14 domain events salvation 在
  • Delphi 流畅的界面

    使用上有什么优点和缺点流畅的界面 http en wikipedia org wiki Fluent interface在德尔福 流畅的界面应该会增加可读性 但我对此有点怀疑one包含很多链式方法的长 LOC 是否存在编译器问题 是否存在任
  • 如何从 Firebase 同步检索数据?

    我有两个集合 即用户和问题 根据使用 userId 登录的用户 我检索currQuestion价值来自users收藏 基于currQuestion值 我需要检索question来自 Firebase 的文档Questions收藏 我使用下面
  • 使用 jquery 事件 keydown 模拟在文本区域上输入不起作用

    我正在尝试制作 Facebook 自动回复消息脚本 这是我的代码 window load function var a setInterval function var e titlebarText html if e else texta
  • MKMapView 拦截/劫持 iPhone 触摸事件

    3 0 SDK 是否存在禁用实时缩放并拦截 MKMapView 放大手势的 bug 我有一些真正简单的代码 因此我可以检测点击事件 但有两个问题 放大手势始终被解释为缩小手势 所有缩放手势都不会实时更新地图视图 在 hitTest 中 如果
  • Delphi 2010 - 从 XML 文档解码 Base64 编码图像

    我正在尝试从应用程序中的 XML 文档解码 base64 编码的 EMF 图像并将其呈现在屏幕上 但是 它似乎从未出现 如果我将 XML 文档中的数据复制 粘贴到 Notepad 中并使用Base64 Decode选项并将文件另存为 emf
  • 对象的引用计数

    在我的代码中 我使用一个小的数据存储类 它是在不同的地方创建的 为了避免内存泄漏并简化事情 我想使用引用计数 所以我这样做了 type TFileInfo class TInterfacedObject IInterface 并删除了我对
  • 如何使 StringGrid 的列适合网格的宽度?

    我已经寻找解决方案很长时间了 但没有任何运气 有谁知道一个简单的方法来做到这一点 例如 我想拉伸网格的第二列以适应网格的宽度 Use the ColWidths财产 像这样 with StringGrid1 do ColWidths 1 C
  • logback的“谨慎模式”是如何实现的?

    The 审慎模式 http logback qos ch manual appenders html prudentlogback 中的序列化所有 JVM 之间的 IO 操作 写入同一文件 可能运行在不同的主机上 在其他日志记录框架中 如果
  • 如何调试symfony2服务容器中配置的标签和服务?

    我正在编写一个服务来处理 AccessDeniedException 并且我找到了一种方法来解决它使用 Symfony2 的 AccessDeniedHandlerInterface https stackoverflow com ques
  • Weld 中的 JavaEE CDI:通用事件?

    我有一个基于泛型的特定事件处理的想法 但似乎 Weld 无法处理它们 我询问了 google 但找不到替代的 CDI 扩展 Question 是否有 CDI 扩展可以处理通用类型事件的事件传播 下面是我遇到的明确问题 我有三个常规事件 En
  • 为什么 Delphi 中的 ADO Next 记录处理速度变慢?

    我有一个多年前开发的 Delphi 4 程序 它使用Opus 直接访问 http sourceforge net projects directaccess 按顺序搜索 Microsoft Access 数据库并检索所需的记录 Delphi
  • 如何释放字符指针数组?

    我使用此方法将列表中的值转换为数组 以便在 execvp 系统调用中使用 char list2argarray struct shellvalue values int count char array char malloc count
  • 用于 C++ 数据复制的 Boost::Signals

    最近我有一堂课看起来像 class IGraphElement typedef void FuncCharPtr char int public void Add FuncCharPtr f FuncVec push back f void

随机推荐

  • 任务栏通知发光

    我有一个 TCP 聊天应用程序 当新消息到达时 我想让任务栏发光 直到用户再次打开表单 以防它没有焦点 激活 我的意思的一个例子 http puu sh 4z01n png http puu sh 4z01n png 怎样才能让它像这样发光
  • 使用 Jquery 根据其内容隐藏

    我正在努力实现以下目标 某个页面会有一系列字符串 如果数据库内容存在 则将其替换为数据库内容 例如 h2 class label Title h2 p class value Title p 会成为 h2 class label Title
  • Linkedin 的 URL 方案

    我有一个ios应用程序 我可以使用自定义 URL 方案 linkedin 从我的 ios 应用程序打开链接的本机应用程序 但是如何通过我的 ios 应用程序发布指向 linkedin 本机应用程序的链接 我们有什么特定的参数吗 linked
  • Angular 5 和 Rxjs:等待所有订阅

    我想在做某事之前等待所有 http 请求完成 在 Angular 5 之前 我使用的是 Promise 和Promise All 使用 Angular 5 和新的HttpClient 我将我的承诺转化为可观察到的结果 如果我理解正确的话 我
  • 未找到本机 Stitch 的实现

    我在android项目中使用opencv拼接 public class MainActivity extends Activity implements OnClickListener private String mWarpType pr
  • 为什么使用 DbContext 而不是 ObjectContext

    我正在使用 EF 4 1 并使用数据库优先方法 我也创建了我的 edmx 文件 现在我希望创建我的 POCO 类 为此 我安装了来自 NuGet 的 EF 4 x DbContext Generator 以及 EF 4 x POCO Ent
  • 为什么 Chrome 认为我的表单是信用卡表单?

    最小重现示例 jsfiddle https jsfiddle net 9e3tL6mn 您需要在浏览器中保存信用卡才能看到此问题
  • 为什么我无法从 Android 本机应用程序登录并测试 Facebook 用户帐户?

    我正在编写一个 Android 应用程序 它使用 Facebook 进行身份验证 为了测试这一点 我编写了一个脚本 它使用指南创建了许多测试用户帐户Facebook 文档中提供 https developers facebook com d
  • jQuery 模板 - 将数据关联到模板 DOM 元素

    我正在使用 jQuery 模板插件渲染几个与此类似的行项目 var clientData name Rey Bango id 1 name Mark Goldberg id 2 name Jen Statford id 3 clientTe
  • 我应该使用什么 RPC 模块在 Python 中实现 RCP,并且以后能够更改连接方法?

    我确实必须实现一些从 Python 到 Python 的 RPC 但出于安全原因 连接方法非常有限 目前看来我可以使用以下方式进行连接SSH并在远程系统上运行单个 python 脚本 将来 当我们可能必须使用其他东西进行连接时 这可能会发生
  • Pandas 通过多个字符串分隔符将列拆分为多列

    我有一个数据框 id info 1 Name John Age 12 Sex Male 2 Name Sara Age 22 Sex Female 3 Name Mac Donald Age 32 Sex Male 我希望将信息列分成 3
  • 如何让 Visual Studio 2010 将变量传递给 MSBuild?

    我构建了一个自定义 msbuild deploy targets 文件 该文件允许我将生成的二进制文件发布到我在命令行上指定的目录 这意味着如果我跑 gt msbuild p DestServer myserver final dest 然
  • 如何删除Redis中的所有内容?

    我想删除所有键 我希望清除所有内容并给我一个空白数据库 有没有办法做到这一点Redis http en wikipedia org wiki Redis 28data store 29 client 使用 redis cli FLUSHDB
  • Rebar3 + Cowboy 内核 PID 终止

    我安装了rebar3并创建了一个新版本 cd apps rebar3 new release tunnel Then 我复制了我的src文件来自 tunnel src to apps tunnel src 我遇到了编译错误rebar3 ru
  • 单个正在运行的 R Shiny 应用程序的多个会话之间的交互

    我想构建一个 R Shiny 应用程序 能够将信息从一个正在运行的实例传递到其他可能正在运行的实例 到目前为止 我还没有发现任何可以帮助我解决这个问题的东西 我希望能够正确地做到这一点 而不是诉诸全局变量和 或写入文件等 我在下面的示例中使
  • 表单上所有元素的公共事件

    我想每当表单中任何元素的值发生变化时触发一个公共事件 根据表单元素的值 我想要实现代码 我正在编写下面的代码 但是 onchange 事件在 formid 上不起作用 formid change function code or this
  • 将 ReactforwardRef 与 Redux connect 结合使用

    我有一个正在使用的 React 功能组件forwardRef像这样 const wrapper React forwardRef props ref gt
  • Gradle - Android - 在应用程序审核中导致编译错误 - 放大旧依赖项

    我正在尝试集成 In App Review 但收到此编译错误 Duplicate class com google android play core common IntentSenderForResultStarter found in
  • 如何获取电脑的ID?

    vb net或java中有没有代码可以获取计算机的ID gt gt 我想编写一个可以获取计算机ID的程序 以便像微软那样制作软件许可证 提前致谢 Makara 首先 微软许可不是这样运作的 他们有一把在他们这边生成的钥匙 当他们向您出售该软
  • 如何在其自身事件中释放控件?

    我有一个清单TPanels在 FMX 应用程序中 如果我单击面板 我想释放它 直接在 Onclick 处理程序中释放它们不是正确的方法 因为我遇到了访问冲突 我不想使用windowsmessages 推荐于如何释放其事件处理程序内部的控制权