如何创建一个不可销毁的实例

2024-01-03

想象一下我有一堂课:TCantBeDestroyed

有人知道如何直接创建一种在两种情况下都不能被销毁的实例: 不能被毁坏。免费; CantBeDestroyed.Destroy;

并且不能被演员摧毁: TObject(CantBeDestroyed).Free; TObject(CantBeDestroyed).Destroy;

Tks.


你无法阻止任何人调用析构函数或Free,但您可以确保这样做不会产生任何影响:

type
  TCannotBeDestroyed = class
  public 
    destructor Destroy; override;
    procedure BeforeDestruction; override;
    procedure FreeInstance; override;
  end;

destructor TCannotBeDestroyed.Destroy;
begin
  //don't call inherited
end;

procedure TCannotBeDestroyed.BeforeDestruction;
begin
  //don't call inherited
end;

procedure TCannotBeDestroyed.FreeInstance;
begin
  //don't call inherited
end;

我无法想象你为什么要这样做!

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

如何创建一个不可销毁的实例 的相关文章

  • Delphi (Indy) TIdTCPClient 在线程中

    在互联网上 我看到通常将 TIdTCPClient 放置在自定义 TThread 后代中 为什么要这样做 有时我也在这样的线程中看到服务器 为什么 干杯 阿德里安 Indy 使用阻塞 I O 最好在线程中处理 这是 Indy 整体设计的核心
  • 在运行时创建 TQReport 元素

    在运行时创建 TQReport 元素 嗯 至少尝试一下 我不知道这份报告中应出现哪些标题或数据 我得到一个代表数据行和列的 TString 的 TList 我在组的带打印事件中植入 创建 指令 并在主数据行带的 OnNeedData 事件中
  • 加载 Jpg/Gif/Bitmap 并转换为 Bitmap

    我必须从 XML 文件加载图像 XML 文件中没有关于图像是否为 JPG GIF BMP 的信息 加载图像后 我需要将其转换为位图 有谁知道如何在不知道实际文件格式的情况下将图像转换为位图 我正在使用 Delphi 2007 2009 谢谢
  • Delphi TImageList 位图更改

    我正在使用 Delphi XE2 Update 3 Update 4 与我们的一些第 3 方组件不兼容 因此我们尚未更新 我在我的应用程序中使用 TImageList 我注意到很多时候当它从源视图切换到表单视图 F12 时 突然之前未修改的
  • 如何避免使用 WinApi.Windows 的 Delphi 应用程序中的 dll 劫持

    Delphi 最新版本使用各种系统 dll 的静态链接 例如 WinApi Windows 单元中的 version dll 这会导致在单元初始化之前加载 version dll 这会打开一个安全漏洞 可以通过将受感染的 version d
  • 如何在 Delphi REST 中发布内容类型为“multipart/form-data”的数据?

    我正在尝试使用 REST API 发送请求multipart form data作为内容类型 我总是收到 HTTP 1 1 500 Internal Error 作为响应 我尝试向需要的方法发送请求application x www for
  • 德尔福数据结构

    我可能需要在 Delphi 中做一个项目 并且是该领域的初学者 目前 我正在网上搜索资源 但由于资源站点太少而感到困惑 首先 你能给我一些好的网站 其中包含我迄今为止错过的 Delphi 资源吗 我也在 Delphi 中搜索数据结构 想知道
  • 如何仅使用 TADOQuery 组件将图像插入数据库

    我有一个简单的基本问题 我正在尝试使用将图像插入数据库Insert与其他列值的语句也使用TADOQuery成分 由于代码已经由某人编写 因此我想在此处放置一些虚拟示例代码 以供您澄清相应的步骤 请注意 这可以正常工作TQuery组件 因为我
  • 如何遍历任意给定集合中的枚举?

    我有很多枚举类型 它们与相应的集合相结合 例如 type TMyEnum meOne meTwo meThree TMyEnums set of TMyEnum 我正在尝试提出一组可以运行的函数any枚举集 而不是为每个枚举编写单独的函数
  • 处理 TShellListView 后代中的文件放置

    我正在尝试创建 TShellListView 的后代 它接受从 Windows 资源管理器中删除的文件 我想在组件定义中处理拖 放操作 而不必在任何使用该组件的应用程序中实现它 我找到了接受从 Windows 资源管理器中拖放的文件的示例
  • 如何在调试器中显示 TStringList 的内容?

    我想在调试应用程序时显示 TStringList 的全部内容 相反 我只是得到指示 Flist 仅显示地址 如果您使用的是 Delphi 2010 或更高版本 调试器允许使用调试可视化工具 http docwiki embarcadero
  • TObjectList.Contains 导致 Delphi 2009 中的访问冲突

    在 Delphi 2009 中 到目前为止 我在泛型方面没有遇到大问题 使用 Generics Collections 列表 没有特殊的泛型功能 现在我发现这段代码会在访问的行中导致AVMyList Contains 如果我声明 TMyLi
  • Delphi AES 库 (Rijndael) 使用 KAT Vectors 进行测试

    对于这两个库 Delphi 加密概要 v 5 2 http code google com p delphidec TurboPower 密码箱 v 2 07 http lockbox seanbdurkin id au tiki list
  • 如何在运行时(Delphi/Windows)程序中添加代码?

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

    Is it possible to fix the drawing of subitem images in a TListView so that they are not cut off on the left hand side as
  • 供所有 Win32 程序员在 Windows Aero Glass(DWM、GDI、GDI+)上绘图的文档和 API 示例

    我正在寻找良好的资源来学习使用 Win32 GDI API 或任何替代它的内容 以便使用 Win32 API 直接在玻璃窗体上进行绘制和绘制 当我使用 Delphi 时 我将其标记为 Delphi 或 Visual C 您能找到的任何代码示
  • 可以在滚动条上绘画吗?

    是否可以在 TMemo TListbox 等标准控件的滚动条上进行绘制 我所需要的只是在滚动条上绘制一些基本形状 并且我试图避免从 stratch 实现整个滚动内容 有什么指点吗 蒂亚 确实有可能 你可能想看一下WM NCPAINT消息 这
  • 将delphi stringgrid导出到excel

    我正在尝试将数据从delphi 7 中的stringgrid 导出到microsoft excel 我一直在使用这段代码来做到这一点 objExcel TExcelApplication Create nil objExcel Visibl
  • 在比较 Delphi 表单文件的版本时,如何使 Beyond Compare 忽略某些差异

    我使用Beyond Compare 版本3 1 10 来比较不同版本的Delphi Form Files 但我不想看到有关ExplicitTop ExplicitLeft ExplicitHeight 和ExplicitWidth 的差异
  • Delphi定时器比毫秒更精确

    我在 Delphi 中有一个程序 它以 25 赫兹 每秒 25 次 的速度从外部应用程序获取帧 然后通过创建 1 2 个额外帧将其转换为 60 赫兹 每秒 60 帧 我需要通过连续构建帧缓冲区并从单独的线程输出帧来输出这些额外的帧 问题是

随机推荐

  • 垂直堆叠 md-chips Angularjs

    我正在 AngularJS 中测试 md chips 指令 有没有办法垂直堆叠 芯片 而不是水平附加芯片 我一直在尝试这里找到的演示 https material angularjs org latest demo chips https
  • .htaccess 重写条件尾部斜杠仅适用于特定目录

    我有一条非常有效的规则 它为我网站上的每个目录添加了一个尾部斜杠 如何仅为某些目录 例如 courses 添加尾部斜杠 我不希望每个目录 路径都有一个尾部斜杠 RewriteCond REQUEST URI RewriteRule http
  • 如何将可选参数传递给 bash 脚本中的另一个命令?

    我正在编写一个 bash 脚本 它接受一些可选参数 我想翻译它们并将它们传递给另一个脚本 但是 我很难优雅地传递可选参数 以下是我设法用伪代码完成的工作的概述 a sh if arg1 in arguments then firstArg
  • 标准 ada 包含路径是什么

    我在使用 apt get 安装的 Ubuntu 上使用 gnat 4 6 我需要知道在哪里安装下载的库 例如APQ http sourceforge net projects apq 我应该设置什么ADA INCLUDE PATH and
  • Swift 2.0 复制 OBJC_ASSOCIATION_RETAIN

    我正在扩展 Swift 2 0 中的一些类以与 ReactiveCocoa 3 0 swift 2 0 分支 一起使用 但遇到了一些麻烦 我已经关注科林了艾伯哈特的教程 http blog scottlogic com 2015 05 15
  • Flutter 使用 http 响应头缓存 JSON 响应

    我正在尝试为服务器 JSON 响应创建和使用缓存 像齐射响应缓存之类的东西 https stackoverflow com a 32022946 1993001 https stackoverflow com a 32022946 1993
  • 在 Mac 上创建 SQL 数据库

    我想在我的 Mac 上创建 SQL 数据库 我想知道我可以用来创建 操作它的最佳软件是什么 任何建议将不胜感激 Postgres Postgres http www postgresql org 是一个成熟的重型企业级数据库系统 Postg
  • 是否可以仅捕获屏幕的一部分,甚至捕获另一个应用程序的特定视图?

    Android 允许使用 MediaProjection 类 如图所示 将全屏捕获为图像或视频here https github com mtsahakis MediaProjectionDemo例如图像 我想知道我们能走多远 是否可以仅捕
  • 如何将 findbugs @Nonnull 与外部库一起使用?

    我开始使用 findbugs Nonnull and CheckForNull在现有项目上添加注释 以防止 NPE 并且认为它效果很好 我用 Nonnull作为返回类型和参数的默认值 只需添加默认值 就已经发现了一些 NPE 现在我找到了类
  • 代理密钥、合成密钥和人工密钥之间有区别吗?

    代理密钥 合成密钥和人工密钥之间有什么区别吗 我不清楚具体的区别 代理密钥 合成密钥和人工密钥是同义词 技术关键是另一个 它们的意思都是 没有商业意义的主键 它们与自然密钥或业务密钥不同 后者的含义超出了当前系统的范围 例如 考虑 SO 用
  • span 和 label 标签之间的渲染差异是什么?

    所以我理解跨度和标签标签之间的功能差异 但是标签之间似乎也存在渲染差异 我似乎无法弄清楚它是什么 有谁知道span和label之间的渲染差异 谢谢 除了默认的渲染样式 标签有时在某些浏览器中为粗体 之外 重要的区别是标签应该链接到表单字段
  • 在 JavaFX 中使用数据库填充表视图

    我开始学习 javaFX 我需要用数据库中的数据填充表 我在网上阅读了很多代码 但没有找到我想要的东西 我读this http pastebin com S0Fg9jK8但我不知道如何实现最后一个功能 我阅读了一些其他代码来做到这一点 到目
  • Java:实现无符号 128 位整数

    首先我应该问 有谁知道 Java 的当前实现 128b UINT 吗 我需要一些东西来保持自然的基本价值观 即 一个巨大的柜台 我知道 BigIntegers 它很慢而且不可变 128b UINT 有意义 我正在考虑使用一对原始长整型来实现
  • Regex101 与 JavaScript String.match 分歧

    这个正则表达式 w g应该匹配每个单词字符between大括号 相反 我得到了不同的结果Regex101 JavaScript 引擎 https regex101 com r iD4uP6 1 and Chrome 控制台 Regex101
  • MongoEngine - 另一个用户已通过此数据库的身份验证。您必须先退出

    谁能解释一下为什么我收到错误另一个用户已通过此数据库的身份验证 您必须先退出当使用连接到 MongoDB 时Flask Mongo引擎 https github com MongoEngine flask mongoengine from
  • 在 Prolog 中断言数字谓词

    Prolog 中是否有可能断言代表数字的事实 例如 我想使用谓词distance 2并断言诸如distance town1 city2 1200 The distance town1 city2 1200term 是该术语的语法糖 dist
  • 如何引导 log4j 输出,以便不同的日志级别发送到不同的附加程序?

    是否可以将 debug 和 info 输出写入控制台 而 info 输出仅写入某个日志文件 例如 给定以下日志记录 LOG debug fileContent LOG info fileLength 对应的是什么log4j xml看起来像
  • MongoDB,如何对文档进行分组

    我的收藏有这样的数据 code 1 location 1 QUEEN STREET id 1 code 1 location 2 KING STREET id 2 code 2 location 1 QUEEN STREET id 3 co
  • 不请求Window.FEATURE_ACTION_BAR问题

    我正在尝试构建我的应用程序 但没有成功 我尝试了多种方法 但没有任何效果 例外的是 Caused by java lang IllegalStateException This Activity already has an action
  • 如何创建一个不可销毁的实例

    想象一下我有一堂课 TCantBeDestroyed 有人知道如何直接创建一种在两种情况下都不能被销毁的实例 不能被毁坏 免费 CantBeDestroyed Destroy 并且不能被演员摧毁 TObject CantBeDestroye