dephi RTI (Runtime Type Information)获取运行时的控件信息

这篇具有很好参考价值的文章主要介绍了dephi RTI (Runtime Type Information)获取运行时的控件信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

var
Edit: TComponent;
begin
Edit := FindComponent("Edit1");
If Edit is TEdit then
TEdit(Edit).Text := '你好 Delphi7';
end;

 

 

RTTI(RunTime Type Information): 运行时类型信息, 就是在程序运行后也能得到类型(譬如 TButton 类)的信息.

 

这在早期主要用于 IDE 设计时, 譬如把一个 Button 放到窗体后, 此时我们的程序虽然没有运行, 但在 Delphi 的 IDE 编辑环境中, 这个 Button 已经是在运行状态(要不然IDE怎么才能显示我们要求的TButton呢); 此时我们对 Button 的属性等信息的设置都是通过 RTTI 技术实现的.

 

但在 Delphi 2007 之前, 能够获取 RTTI 信息是有限的.

Delphi 2009 增加了 ObjAuto 单元、Delphi 2010 增加的 RTTI 单元, 这都可以让程序在运行时对类型有更多掌控(副作用是最后生成的程序越来越大).​

-------------------------------------例子1----------------------------------------

Uses Rtti, TypInfo;

procedure TForm1.Button3Click(Sender: TObject);

begin

ShowMessage(GetEnumName(TypeInfo(TFormStyle), Ord(FormStyle)));

end;

主窗体上放2个Label,3个Button,然后

procedure TForm1.Button1Click(Sender: TObject);

var

i: integer;

PropInfo: PPropInfo;

begin

for I := 0 to ComponentCount-1 do

begin

PropInfo:=GetPropInfo(Components[i].ClassInfo, 'Color');

if PropInfo <> nil then

SetOrdProp(Components[i], PropInfo, clBlue);

end;

end;


-----------------------------------
Delphi的RTTI(许多参考链接)
https://blog.51cto.com/u_15127692/4693281文章来源地址https://www.toymoban.com/news/detail-609029.html

到了这里,关于dephi RTI (Runtime Type Information)获取运行时的控件信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • leetcode链表题报错 runtime error: member access within null pointer of type ‘ListNode‘

    今天在做leetcode203:移除链表元素时,反复遇到了报错: runtime error: member access within null pointer of type ‘ListNode’ (solution.cpp) ,报错提示的意思是试图访问’ListNode空指针类型的成员,就浅浅记录一下修复bug的过程吧。。。。 刚开始的代码是这样的,逻辑是先建立一个头结点放

    2024年02月11日
    浏览(50)
  • Flink 运行时[Runtime] 整体架构

    在 Flink 整个软件架构体系中,同样遵循着分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建 Flink 应用提供了丰富且友好的接口。从下图中可以看出整个 Flink 的架构体系基本上可以分为三层,由上往下依次是 API Libraries层 、 Runtime核心层 以及 物理部署层 。

    2024年02月04日
    浏览(39)
  • 什么叫运行时的Java程序?

    开发人员在Java开发环境中输入程序代码,形成后缀名为.java的Java源文件。 使用Java编译器对源文件进行错误排查,并生成后缀名为.class的字节码文件。 JRE中的Java解释器将字节码文件翻译成机器代码并执行,显示程序运行结果。 JRE (Java Runtime Environment,简称JRE,Java运行时环

    2024年03月14日
    浏览(70)
  • MySQL系统表information_schema.INNODB_TRX详解及查看当前运行事务

    在日常管理数据库的过程中,有时需要查询MySQL数据库是否正在有正在执行的事务,便于排查业务问题。MySQL的系统库表有数据维护对应的信息,就在 information_schema 库中的 INNODB_TRX 表,包含事务中是否存在锁,事务开启时间,事务执行的语句等等。 SELECT * FROM information_schema

    2024年02月16日
    浏览(84)
  • MySQL运行时的可观测性

    1.说在前面的话 2.安装employees测试库 3.观测SQL运行状态 3.1 观测SQL运行时的内存消耗 3.2 观测SQL运行时的其他开销 3.3 观测SQL运行进度 感知SQL运行时的状态 在MySQL里,一条SQL运行时产生多少磁盘I/O,占用多少内存,是否有创建临时表,这些指标如果都能观测到,有助于更快发现

    2024年02月12日
    浏览(43)
  • 开发Flutter时点击运行时的报错

    Could not build the precompiled application for the device. Error (Xcode): No profiles for \\\'com.jiniu.paymentpro\\\' were found: Xcode couldn\\\'t find any iOS App Development provisioning profiles matching \\\'com.jiniu.paymentpro\\\'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebui

    2024年02月10日
    浏览(31)
  • Android运行时权限Runtime Permission源码分析

    Android 8.1.0 应用使用requestPermissions申请权限时,系统会弹出一个选择窗口,可进行允许。 源码在packages/apps/PackageInstaller/文件下 GrantPermissionsActivity.java是进行权限分配的弹出窗口,通过GrantPermissionsDefaultViewHandler来控制GrantPermissionsActivity的ui视图, 按钮的点击事件是通过GrantPerm

    2024年02月06日
    浏览(40)
  • 运行 `npm install` 时的常见问题与解决方案

    描述: 运行 npm install 时,可能会遇到网络连接问题,导致无法正常下载依赖包。 报错示例: npm ERR! network connection timed out npm ERR! connect ETIMEDOUT npm ERR! getaddrinfo EAI_AGAIN 解决方案: 确保你的计算机已连接到互联网。可以尝试打开浏览器,访问其他网页来确认网络连接正常。 检

    2024年02月07日
    浏览(66)
  • 使用 C# 和 ONNX Runtime 加载和运行 ONNX 模型

    今天突然有人和我说想要实现windows环境下c#调用tensorflow模型,我想着ONNX不是可以搞嘛,然后我翻了一下以前做的,没翻到,就查询了下资料,鼓捣出来了 下面将介绍如何使用 C# 和 ONNX Runtime 库加载并运行 ONNX 模型。ONNX是啥我就不说了,留个链接。 废话不说,show me code! 首

    2024年02月13日
    浏览(39)
  • 如何使用 Go 获取 URL 的参数,以及使用时的问题

    Go 获取 URL 参数也很容易,但是由于 Go 有严格的数据类型和错误管理,所以在使用时会些微有些复杂。所以本文不仅会讲如何获取 URL 的参数,也会讲在使用时的一些问题。 首先假设 URL 是 https://www.example.com/?keyword=abcid=12 。 其他语言一般这个时候就是导入包了,但是 Go 的包

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包