如何访问记录属性?

2023-12-05

我需要访问、记录属性并设置/获取该属性值。 首先,我想访问属性。但我不能。

怎么了? 版本:德尔福 XE6。

示例代码:

type
  TmyRecord = record
  private
    Str : String;
  public
    property StrProp :String read Str;  
  end;


procedure TForm1.Button3Click(Sender: TObject);
var
 c : TRttiContext;
 t : TRttiType;
 field : TRttiField;
 prop : TRttiProperty;
begin
 c := TRttiContext.Create;
 try
   Memo1.Lines.Append('Fields');
   for field in c.GetType(TypeInfo(TMyRecord)).GetFields do
   begin
     t := field.FieldType;
     Memo1.Lines.Append('Field:'+field.Name);
     Memo1.Lines.Append('RttiType:'+t.ClassName);
   end;

   Memo1.Lines.Append('Properties');
   for prop in c.GetType(TypeInfo(TMyRecord)).GetProperties do
   begin
     t := prop.PropertyType;
     Memo1.Lines.Append('Property:'+prop.Name);
     Memo1.Lines.Append('RttiType:'+t.ClassName);
   end;

 finally
   c.Free
 end;

end;

您的问题是,没有可用于记录属性的 RTTI,正如 2009 年已报告的那样,但仍未修复(QC#78110).

Edit:2017年仍未修复(RSP-19303).

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

如何访问记录属性? 的相关文章

  • 如何使用 jQuery 和“长轮询”通过 Indy HTTP 服务器动态更新 HTML 页面?

    我读过这篇文章使用 JavaScript 和 jQuery 的简单长轮询示例 http techoctave com c7 posts 60 simple long polling example with javascript and j
  • 从单个应用程序中的多个线程调用 dll 函数是否安全?

    我正在 Delphi 2009 中编写一个服务器应用程序 它实现了多种类型的身份验证 每种身份验证方法都存储在单独的 dll 中 第一次使用身份验证方法时 会加载适当的 dll 仅当应用程序关闭时 DLL 才会被释放 在服务器线程 连接 之
  • 如何允许表单接受文件删除而不处理 Windows 消息?

    在 Delphi XE 中 我可以允许我的表单接受文件 拖放 但不必处理裸窗口消息吗 您不需要处理消息来实现这一点 你只需要实施IDropTarget并打电话RegisterDragDrop RevokeDragDrop 这真的非常非常简单
  • Delphi中的抽象类

    我正在使用一个具有许多抽象类的组件套件 现在我想应用多态性 但在创建对象时收到错误抽象类 即使我不需要 我是否应该重写所有虚拟方法 有什么解决方法或解决方案吗 为了创建类的实例 您需要重写所有声明为虚拟抽象的方法 即使您不使用它们 如果您确
  • 如何向标准集合编辑器添加图标?

    我有一个自定义控件 它利用TCollection and TCollectionItem 在集合编辑器中 我想向每个列表项添加图标 该列表项由内部TImageList 在其父组件内 集合项本身代表图标 我想在这个编辑器中显示相应的图标 如何
  • 使用 TStringList 的分隔符解析字符串,似乎也解析空格(Delphi)

    我有一个简单的字符串 由某个字符分隔 比如说逗号 我应该能够创建一个 TStringList 并将其分隔符设置为逗号 然后将 DelimitedText 设置为我想要解析的文本 并且应该自动解析它 问题是 当我查看输出时 它还包含空格作为分
  • Delphi - 如何获取 USB 可移动硬盘和记忆棒的列表?

    在我的应用程序 Delphi 中 我需要列出所有 USB 存储设备 这些可以是闪存棒or外部存储驱动器 有一个Jvcl成分JvDriveCombo 并且它有DriveType属性 问题是我是否选择DriveType Fixed那么除了外部驱
  • 如何将数据库查询的行转换为 XML 文件?

    我正在开发一个 Delphi 应用程序 该应用程序需要从一段工作中获取行并将其转换为单个 XML 文件 以便上传到第三方 Web 服务 有没有可用的组件或库可以做到这一点 如果不是 那么构建 DB2XML 转换器的最佳代码方法是什么 我注意
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • 调试器异常错误和内存超调

    我尝试运行以下代码 但它显示有关内存地址的错误 并显示一条消息 循环后 n 可能未定义 请看一看 var n max integer n integer r R1 f h0 Array of Real const h 0 00889 nip
  • TColorProperty德尔福柏林10.1.2?

    我正在尝试将组件从 Delphi 7 转换为 Delphi Berlin 平面组件 https sourceforge net projects flatstyle https sourceforge net projects flatst
  • 如何用不同的颜色绘制选定的列表框项目?

    是否可以更改 TListBox 中的项目选择焦点颜色和文本颜色 当项目中未启用主题或列表框样式设置为所有者绘制时 项目周围的选择将被涂成蓝色 我相信这是由系统的外观设置全局定义的 我想将所选项目的颜色更改为自定义颜色 举个例子 结果会是这样
  • 如何使用 FieldDefs 在运行时创建新的 SQLite 文件和表?

    我正在使用 Delphi Seattle 在全新的 SQLite 文件中创建一个全新的表 并且仅使用 FieldDefs 和非可视代码 我可以使用 ExecSQL CREATE TABLE 语法创建一个表 但不能如下所示 我得到 没有这样的
  • 如何在Delphi中显示Vista风格的气球提示?

    在输入验证时 我使用气球提示而不是消息框 我的问题是 在 Vista 上 它们具有带圆角的旧 XP 样式 而不是较新的矩形外观 我尝试使用 CreateWindowEx 创建它们并且tooltips class32或使用 SendMessa
  • 如何比较枚举类型集

    从某个时刻开始 我厌倦了编写设定条件 and or 因为对于更多的条件或更长的变量名 重新编写会变得笨拙且烦人 所以我开始写助手这样我就可以写ASet ContainsOne ceValue1 ceValue2 代替 ceValue1 in
  • 如何从该 JAVA 文件中提取 Delphi 类以与 Android 一起使用?

    我的Delphi XE7项目需要与FTDI FT311 Android 配件芯片 http www ftdichip com Products ICs FT311D html 他们帮助提供了一个 Android 演示 其中包括他们的 JAV
  • 为什么 Delphi 中的 ADO Next 记录处理速度变慢?

    我有一个多年前开发的 Delphi 4 程序 它使用Opus 直接访问 http sourceforge net projects directaccess 按顺序搜索 Microsoft Access 数据库并检索所需的记录 Delphi
  • 使用 PutBlock 并将字节数组全部设置为零的 EIPHTTPProtocolExceptionPeer 异常

    使用 Delphi XE2 Update 3 我在将零字节块上传到 Azure 时遇到问题 当我说零字节时 我指的是每个元素设置为零的字节数组 不是零长度 例如 var ConInfo TAzureConnectionInfo RespIn
  • Delphi XE7 Android 全屏(隐藏软键)

    如何在XE7中全屏显示 隐藏顶部 标题 和底部 软键 工具栏 在 XE6 中 我可以通过在应用程序部分写入来调整 AndroidManifest 以使我的应用程序全屏显示并且没有操作栏 android theme android style
  • 如何读取和更改 TEdit 控件的值?

    我有一个表格TForm1有 5TEdit and 2 TBitBtn 我还需要该程序 以便在输入数字数据后Edit1 and Edit2 on BitBtn1Click Edit1 and Edit2值将被求和并显示在Edit3 你想做这样

随机推荐

  • 如何在android中使用volley将json对象发送到服务器

    我想使用 POST 方法将 JSONObject 发送到服务器 我已经使用 volley 库来传递字符串参数 它工作正常 但是如果我尝试使用 json 对象 它会显示调用 json 对象的错误 这是我的代码 private void mak
  • 在 R 中设置永久的默认 CRAN 镜像

    如何在 R 中永久设置特定的 CRAN 镜像 我想将其永久设置在我的笔记本电脑中 这样当我这样做时install packages 它不会再问我选择哪个镜子 您可以设置repos在你的 R配置文件每次启动 R 时恢复您的选择 Edit 更准
  • 如何指示可以使用内联 ASM 参数*指向*的内存?

    考虑以下小函数 void foo int iptr iptr 10 1 asm volatile nop r iptr iptr 10 2 使用海湾合作委员会 这编译为 foo nop mov DWORD PTR rdi 40 2 ret
  • 如何告诉 Netbeans 一段代码是 Javascript?

    我正在使用 Zend Framework 的 javascript 帮助程序 其形式为 Javascript here Rest of view here 问题是 Netbeans 不断抱怨块中的代码问题 因为它认为这是一个 HTML 而不
  • 在 iOS 模拟器中强制终止后台应用程序

    在 iOS 4 中 应用程序会转到后台而不是终止 为此 我必须注册 NSNotificationCenter defaultCenter addObserver self selector selector appWillTerminate
  • 检查用户是否运行过

    我运行一个 Google Apps 脚本 将文件上传到用户的 Google 云端硬盘文件 function doGet e var blob UrlFetchApp fetch e parameters url getBlob DriveA
  • Tcl_AsyncDelete 多线程 Python 错误

    我听说 Python 中的线程不容易处理 而且它们与 tkinter 更加纠缠在一起 我有以下问题 我有两个类 一个用于 GUI 另一个用于无限进程 我必须为两者使用类 首先 我启动 GUI 类 然后启动无限进程类 我希望当你关闭 GUI
  • Coredata PerformBlock 然后返回新值

    如果我正在使用 如何返回保存在 coredata 中的新对象performBlock保存一个 ManagedObjectContext 要求是 在 coredata 中添加一个条目 然后返回它 我的代码是这样的 create a priva
  • C# 列表:使用大小初始化,为什么在 .Add() 之后才能使用 [] 访问?

    这对于数组来说效果很好 int a new int 10 for int i 0 i lt 10 i a i i 但这会抛出一个带有列表的 ArgumentOutOfRangeException List
  • 使用 jQuery .trigger() 将 keydown 发送到 Angular 指令

    我创建了一个编辑指令来将 html 输入包装在一个精美的框架中 现在我正在创建一个单元测试来检查一旦输入输入 表单控制器的脏状态就被设置了 我正在使用 jQuery trigger 来模拟这个 但我什么也没得到 var input inpu
  • 这个运算符叫什么以及它的用途是什么 <=>

    我最近在深入研究 Groovy 时遇到了这个神奇的运算符 Groovy 确实让我对 elvis 操作员感到满意 和 我现在经常使用 并且非常希望在 Java 中使用 有了这个新的运算符 我只找到了这个参考 它似乎使比较器变得更容易 我的问题
  • 未获取服务中共享首选项的更新值

    我正在将一些值存储到从小部件启动的活动的共享首选项中 如果我从同一个小部件启动的服务中检索该值 则它不是更新的值 我得到了共享偏好中先前的值 即使我检查了共享首选项 xml 中的该值 我也看到了更新后的值 为什么会发生这种情况 我知道wid
  • 如何更改 Visual Studio 查找结果窗口中活动行的背景颜色?

    我刚刚切换到黑暗主题在 Visual Studio 中 无法在 查找结果 窗口中找到用于更改当前活动行的背景颜色的设置 最明显的地方是在 工具 选项 字体和颜色 查找结果窗口 设置中 但没有活动行的选择 我还查看了 Visual Studi
  • 单击时如何在角度中添加删除(切换)类

    我想在单击时向 li 添加活动和开放类 并在再次单击时删除这些类 li class treeview li li ts menuToggle event any this renderer addClass 您可以使用模板引用变量来切换模板
  • 使用 Delphi 调用 Http GET url 最简单的方法是什么?

    我想在我的应用程序中调用一个 Web 服务 我可以通过导入 WSDL 来使用它 或者仅使用带有 URL 和参数的 HTTP GET 所以我更喜欢后者 因为它很简单 我知道我可以使用 indy idhttp get 来完成这项工作 但这是非常
  • 使用 Groovy 脚本从 Jenkins 中的工作区读取文件

    我想使用 Groovy 插件添加一个构建步骤来读取文件并根据文件的内容触发构建失败 如何在 groovy 插件中注入工作区文件路径 myFileDirectory Get workspace filepath here myFileName
  • 错误 TF30063:您无权访问...\DefaultCollection

    我在用着TFS 预览 Team Foundation Service 与我使用 Visual Studio 2012 的一个项目一起使用 我还在我的大多数项目中使用本地 TFS 服务器 当我在使用 TFS 预览后使用本地 TFS 并返回使用
  • 什么取代了 HTML5 表格中的 cellpadding、cellspacing、valign 和align?

    In 视觉工作室 我看到这些警告 验证 HTML 5 属性 cellpadding 不是元素 table 的有效属性 验证 HTML 5 属性 cellspacing 不是元素 table 的有效属性 验证 HTML 5 属性 valign
  • 将字符串值转换为 double 类型的二维数组

    我有一个字符串 String stringProfile 0 4 28 10 4 93 20 3 75 我试图将它变成一个数组 如下所示 double values 0 4 28 10 4 93 20 3 75 我已格式化字符串以删除所有空
  • 如何访问记录属性?

    我需要访问 记录属性并设置 获取该属性值 首先 我想访问属性 但我不能 怎么了 版本 德尔福 XE6 示例代码 type TmyRecord record private Str String public property StrProp