具有记录类型的 Typeinfo 在运行时不起作用

svd71

我在Delphi下编译有点问题:

function T_QS2ProcessMailbox.PutRec<T>(const aID: T_Barcode; var aRec: T;const aTxt: String): Boolean;
var
  FA: T_FahrauftragRec absolute aRec;
  LP: T_LagerpackungRec absolute aRec;
begin
  init_Rec;
  Rec.ID        := aID;
  Rec.EventTime := Now;
  Rec.Text      := aTxt;
  if TypeInfo(T_LagerpackungRec) = TypeInfo(T) then
  begin
    Rec.RecType := C_QS_TYPE_TLAGERPACKUNGREC;
    Rec.FA      := FA;
  end
  else
    if Typeinfo(T) = Typeinfo(T_LagerpackungRec) then
    begin
      Rec.RecType := C_QS_TYPE_TFAHRAUFTRAGREC;
      Rec.LP      := LP;
    end
    else
      Rec.RecType := C_QS_TYPE_TEXT;
  Send_TraceMsg(ClassName + '.PutRec Type=' + IntToStr(Rec.RecType));
  Result        := PutRec(Rec);
end;

它编译得很好,没有错误、消息或提示。但它是在没有if语句的情况下编译的您可以在图片中查看它-此代码没有编译标记

图像

我不理解为什么。

有人可以向我解释我做错了什么吗?

肯·布拉萨

这些if语句可以在编译时解析,因此对于任何给定的T. (换句话说,编译后的代码永远不会if为此函数执行任何代码)。

我可以想象只看到 1 个编译标记的 2 个原因。要么您的应用程序只使用其中的 1 个if语句,要么 IDE 将所有if语句的编译标记映射到同一行(我觉得最后一个不太可能,但我在 IDE 中看到了奇怪的东西)。

另一种可能性是你的第二个if应该阅读

if Typeinfo(T) = Typeinfo(T_FahrauftragRec) then

代替

if Typeinfo(T) = Typeinfo(T_LagerpackungRec) then

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从CMD运行时schtasks命令有效,但从VBScript运行时不起作用

来自分类Dev

从CMD运行时schtasks命令有效,但从VBScript运行时不起作用

来自分类Dev

(MySQL 和 .Net Core)选择在 where 子句中具有运行时值的查询不起作用

来自分类Dev

动画正在运行时,OnClick不起作用

来自分类Dev

动画正在运行时,OnClick不起作用

来自分类Dev

wpf 控制模板在运行时不起作用

来自分类Dev

我使用 javafx 的井字棋程序不起作用。它没有编译错误或运行时错误。但它仍然不起作用

来自分类Dev

在运行时创建匿名记录类型

来自分类Dev

编码在Windows OS中有效,但在Mac OS中不起作用(运行时错误1004)

来自分类Dev

在运行时编辑动态记录

来自分类Dev

在运行时转换类型数组

来自分类Dev

在运行时获取输入类型

来自分类Dev

在运行时定义的类型的列表

来自分类Dev

如何在运行时使用类型定义具有内部类的类?

来自分类Dev

在运行时具有自动布局的UIButton大小

来自分类Dev

在EC2上运行时,带有R(rocker / r.base)和python的Docker镜像不起作用,但可以使用local

来自分类Dev

在运行时确定或访问类型变量的具体类型

来自分类Dev

在运行时确定或访问类型变量的具体类型

来自分类Dev

在运行时更改Tomcat中的日志记录级别?

来自分类Dev

Python在运行时记录新的热键

来自分类Dev

在运行时更改记录器

来自分类Dev

VBA 运行时错误 1004 - vlookup 有时会起作用

来自分类Dev

字符串替换在运行时在Powershell脚本中不起作用

来自分类Dev

在运行时更新表名不起作用-laravel Eloquent ORM

来自分类Dev

MongoDB Java驱动程序MongoClient在运行时不起作用

来自分类Dev

android:layout_alignParentBottom在运行时不起作用

来自分类Dev

DotVVM在运行时从Panel组件更改CssStyle属性不起作用

来自分类Dev

当地图正在运行时,React中的过滤器方法不起作用

来自分类Dev

在运行时渲染DOM在Dojox中不起作用

Related 相关文章

  1. 1

    从CMD运行时schtasks命令有效,但从VBScript运行时不起作用

  2. 2

    从CMD运行时schtasks命令有效,但从VBScript运行时不起作用

  3. 3

    (MySQL 和 .Net Core)选择在 where 子句中具有运行时值的查询不起作用

  4. 4

    动画正在运行时,OnClick不起作用

  5. 5

    动画正在运行时,OnClick不起作用

  6. 6

    wpf 控制模板在运行时不起作用

  7. 7

    我使用 javafx 的井字棋程序不起作用。它没有编译错误或运行时错误。但它仍然不起作用

  8. 8

    在运行时创建匿名记录类型

  9. 9

    编码在Windows OS中有效,但在Mac OS中不起作用(运行时错误1004)

  10. 10

    在运行时编辑动态记录

  11. 11

    在运行时转换类型数组

  12. 12

    在运行时获取输入类型

  13. 13

    在运行时定义的类型的列表

  14. 14

    如何在运行时使用类型定义具有内部类的类?

  15. 15

    在运行时具有自动布局的UIButton大小

  16. 16

    在EC2上运行时,带有R(rocker / r.base)和python的Docker镜像不起作用,但可以使用local

  17. 17

    在运行时确定或访问类型变量的具体类型

  18. 18

    在运行时确定或访问类型变量的具体类型

  19. 19

    在运行时更改Tomcat中的日志记录级别?

  20. 20

    Python在运行时记录新的热键

  21. 21

    在运行时更改记录器

  22. 22

    VBA 运行时错误 1004 - vlookup 有时会起作用

  23. 23

    字符串替换在运行时在Powershell脚本中不起作用

  24. 24

    在运行时更新表名不起作用-laravel Eloquent ORM

  25. 25

    MongoDB Java驱动程序MongoClient在运行时不起作用

  26. 26

    android:layout_alignParentBottom在运行时不起作用

  27. 27

    DotVVM在运行时从Panel组件更改CssStyle属性不起作用

  28. 28

    当地图正在运行时,React中的过滤器方法不起作用

  29. 29

    在运行时渲染DOM在Dojox中不起作用

热门标签

归档