动态列出项目中的所有表单

2024-01-08

我想在列表框中动态列出项目中存在的所有表单的名称,然后通过单击每个表单,在另一个列表框中列出该表单上存在的所有按钮。

但我不知道是否可以实施以及如何实施。


如果您使用的是 Delphi 2010,您可以使用 RTTI 列出所有已注册(=在应用程序中以某种方式使用)的表单类:

uses
  TypInfo, RTTI;

procedure ListAllFormClasses(Target: TStrings);
var
  aClass: TClass;
  context: TRttiContext;
  types: TArray<TRttiType>;
  aType: TRttiType;
begin
  context := TRttiContext.Create;
  types := context.GetTypes;
  for aType in types do begin
    if aType.TypeKind = tkClass then begin
      aClass := aType.AsInstance.MetaclassType;
      if (aClass <> TForm) and aClass.InheritsFrom(TForm) then begin
        Target.Add(aClass.ClassName);
      end;
    end;
  end;
end;

您必须以某种方式注意该类不会被链接器完全删除(因此挂号的上面有提示)。否则,您无法使用所描述的方法获得该类。

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

动态列出项目中的所有表单 的相关文章

随机推荐

  • 我应该使用什么列类型/长度来在数据库中存储 Bcrypt 哈希密码?

    我想在数据库中存储散列密码 使用 BCrypt 哪种类型比较合适 哪种长度合适 使用 BCrypt 散列的密码是否始终具有相同的长度 EDIT 哈希示例 2a 10 KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3Lqt
  • 调用基函数,然后调用继承函数

    我有一个基类和一个继承基类的类 基类有几个虚函数 继承类可以重写这些虚函数 但是 基类中的虚拟函数具有必须在调用继承类重写之前运行的代码 有什么方法可以让我先调用基类虚函数 然后再调用继承的类重写 无需调用base function 我知道
  • 如何从XML文件读取数据并将其存储到数据库(MySQL)中?

    我需要从 XML 文件获取数据并将其存储到 MySQL 数据库中 我正在考虑使用 SAX 解析器来解析数据 但我不确定如何将数据有效地存储到数据库中 我正在考虑一些技术 例如JDBC http en wikipedia org wiki J
  • Python、Selenium 和 Beautiful Soup for URL

    我正在尝试使用 Selenium 编写一个脚本来访问 Pastebin 进行搜索并以文本形式打印 URL 结果 我需要可见的 URL 结果 仅此而已 div class gs bidi start align gs visibleUrl g
  • 监控应用程序对 DLL 的调用

    简而言之 我想监视从应用程序到 DLL 的选定调用 我们有一个旧的 VB6 应用程序 我们丢失了它的源代码 当时公司没有使用源代码控制 此应用程序使用第 3 方 DLL 我想在新的 C 应用程序中使用这个 DLL 不幸的是 DLL API
  • 如果存储过程中参数为空,则选择全部

    我想在 SQL Server 中创建一个过程来选择并连接两个表 参数 company from 和 to 始终被设置 但 serie type 可以为NULL 如果 serie type不为NULL我只想包含指定的类型 简单AND S Ty
  • 我们什么时候应该将 String 更改为 Stringbuilder?

    在应用程序中 字符串是一种常用的数据类型 我们知道 字符串的突变会占用大量内存 所以我们能做的就是使用 StringBuilder StringBuffer 但什么时候我们应该改用 StringBuilder 呢 当我们必须拆分它或替换其中
  • 使用 apache ant 构建时未找到属性“hardwareAccelerated”的资源标识符

    我的应用程序针对 android API 级别 7 2 1 在 Eclipse 下一切正常 生成的 APK 在 2 1 设备上也可以正常工作 我尝试使用 apache ant 构建应用程序并收到此错误 相同问题的所有解决方案都告诉我必须设置
  • YouTube API - 通过播放列表查询获取所有视频的标签

    我正在查询 YouTube 频道以检索播放列表元数据 如下所示 https www googleapis com youtube v3 playlistItems part snippet 2CcontentDetails maxResul
  • getEdgeFlags 总是返回 0?

    为什么我无法获取getEdgeFlags 是否能够检测到边缘触摸 我延长了DrawerLayout 然后做了 Override public boolean onInterceptTouchEvent MotionEvent ev int
  • 有什么方法可以在 Swift 中逐渐加快游戏速度吗?

    我目前正在使用 Spritekit 开发一款游戏 游戏中的物体会在屏幕顶部产生并落向玩家角色 当玩家角色与任何物体碰撞时游戏结束 我正在尝试找到一种方法 随着时间的推移逐渐加快游戏速度 使游戏变得更加困难 即游戏开始时物体以正常速度下落 5
  • php 会话在服务器中存储多长时间?

    我想知道 php 会话在服务器内存中存储多长时间 如果用户登录 在服务器中设置会话变量 并且他使浏览器长时间打开 假设 30 天 并且他在第 31 天重新加载页面 该怎么办 浏览器可以访问会话变量 浏览器仍然有会话cookie 吗 默认 p
  • 如何在 Ubuntu 14.04 上安装 php7 (zts) + pthreads

    我需要完整安装 PHP7 ZTS Pthreads 的帮助 我已尝试以下安装但无法使其工作 sudo i apt get update apt get install y git bison autoconf build essential
  • transformClassesWithJarMergingForDebug,com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:

    尝试在设备上运行应用程序时出现此错误 但是gradle同步总是成功的 错误 任务执行失败 EmployeeManager transformClassesWithJarMergingForDebug gt com android build
  • Chrome/V8 不会垃圾收集循环引用吗?

    看一下 Chrome 堆快照的这一部分 它显示了堆中对象的保留器 据我所知和所见 该对象应该是垃圾 但尽管如此 该对象仍未被收集 毕竟 到根的 最短 路径是一条循环路径 它实际上从未到达根 这让人想知道 快照查看器如何能够为其分配 12 的
  • 使用可用的训练挂钩在 tf.estimator.DNNRegressor 中实现提前停止

    我是张量流新手 想要实现提前停止tf estimator DNNRegressor带有可用的训练挂钩训练挂钩 https www tensorflow org api guides python train Training Hooks对于
  • 在反应对话框模型中打开 iframe 时,锚标记 href 不起作用

    我们开设了一个iframe在模式对话框中 在里面iframe我们正在加载一个document 该文档也是 html 页面 这 a 文档中的标签未导航至id他们中提到的href 只是来自的一个样本html文档 下面是 a 例子 a href
  • 你的 .vimrc 中有什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 调试 iOS Safari 上添加到主屏幕的 Web 应用程序

    我正在尝试调试添加到主屏幕的网络应用程序 我已经在 safari 上启用了网络检查器 如果我在 iOS safari 中打开 我可以调试该应用程序 但是当我将应用程序添加到主屏幕并尝试调试时 它显示 无可检查的应用程序 任何帮助 将不胜感激
  • 动态列出项目中的所有表单

    我想在列表框中动态列出项目中存在的所有表单的名称 然后通过单击每个表单 在另一个列表框中列出该表单上存在的所有按钮 但我不知道是否可以实施以及如何实施 如果您使用的是 Delphi 2010 您可以使用 RTTI 列出所有已注册 在应用程序