在delphi中传递不同枚举类型的混合

2024-02-09

我需要编写一个可以传递不同枚举选择的过程。

type
  TEnumOne = (eOneFlagOne, eOneFlagTwo);
  TEnumTwo = (eTwoFlagOne, eTwoFlagTwo);

该方法应该采用不同的枚举:

Process([eOneFlagOne, eTwoFlagTwo]);

我正在尝试像这样实现它:

// does not work!
procedure Process(const Enums: array of Variant);
var aValue; Variant
begin
  for aValue in Enums do
  begin
    // of course, can't work...
    if aValue is TEnumOne then
  end; 
end;

那么,有没有一种类型可以代替 Variant,我可以选择呢?或者是一种不同的方法,我不明白?


认识帕斯卡的美丽。

这是您可能正在尝试执行的操作的示例:

program Project34; {$APPTYPE CONSOLE}

type
  TEnum=(eOneFlagOne,eOneFlagTwo,eTwoFlagOne,eTwoFlagTwo);
  TEnumSet=set of TEnum;

const
  cEnumOne=[eOneFlagOne,eOneFlagTwo];
  cEnumTwo=[eTwoFlagOne,eTwoFlagTwo];

procedure Process(const Enums: TEnumSEt);
var e:TEnum;
begin
  for e in Enums do
    WriteLn(ord(e));
end;

begin
  Process([eOneFlagOne, eTwoFlagTwo]);
  Process(cEnumOne);
  Process(cEnumTwo);
end.

请注意,您也可以这样声明常量。也许这样更清楚:

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

在delphi中传递不同枚举类型的混合 的相关文章

  • php递归合并

    我需要以某种不同的方式合并一些数组 我使用 array merge recursive 然而 有一些事情我需要改变 但我不知道如何改变 这是来自 php net 的引用 但是 如果数组具有相同的数字键 则后面的值 不会覆盖原始值 但会追加
  • 方法的表达式开头非法

    所以我试图打开 关闭 重新打开 读取并将数组转换为一维数组和二维数组 public class Assigntment2Condensed public static void main String args throws IOExcep
  • Typescript:按值检查对象是否存在于数组中

    我有这个数据 roles roleId 69801 role ADMIN roleId 69806 role SUPER ADMIN roleId 69805 role RB roleId 69804 role PILOTE roleId
  • 似乎有时 Delphi 是区分大小写的 - “覆盖方法应该与祖先的大小写匹配”

    今天我遇到了一个 奇怪 的提示 覆盖方法 xxxx 应匹配祖先 yyyy 的大小写 解决方案是完全按照祖先中的方式声明方法名称 我相信这是自 Delphi Net 编译器以来编译器中保留的东西 与祖先中完全相同的方法声明方法使编译器 沉默
  • TFrame继承重构

    我提出的另一个 TFrame IDE 注册组件问题 感谢各位程序员的帮助 尝试 Darrian 的 TFrame 继承建议here https stackoverflow com questions 382562 delphi visual
  • 在 MongoDB 中查找具有字符串 ID 数组的文档

    我有一个 id 字符串数组 我想将其与 find 函数一起使用 db companies find id in arr arr看起来像这样 563a2c60b511b7ff2c61e938 563a2c60b511b7ff2c61e8b7
  • 如果存储字符串的 char 数组小于字符串,C++ 真正将字符串存储在哪里?

    我正在测试 C Premiere 书中有关 C 字符串的示例 const int size 9 char name1 size char name2 size C owboy 8 characters here cout lt lt How
  • PHP:展平数组-最快的方法? [复制]

    这个问题在这里已经有答案了 是否有任何快速方法可以在不运行 foreach 循环的情况下展平数组并选择子键 在本例中为 键 和 值 或者 foreach 始终是最快的方法 Array 0 gt Array key gt string val
  • Delphi Prism 中 TStringList 的替代品。

    我正在将用 Delphi 2007 Net 编写的应用程序迁移到 Delphi Prism 哪个是替换 TStringList 和 TStrings 类的最佳选择 提前致谢 Bye 只需使用 NET 框架中内置的 List 类型 或者字符串
  • 如何将枚举类型放入字符串列表中?

    这行代码 ShowMessage GetEnumName TypeInfo TAlign 1 返回 alTop 当我想使用字符串变量 TAlign 而不是TAlign时 如何将枚举类型的所有值放入字符串列表中 就像是 ShowMessage
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • 如何将枚举作为字符串存储到rails中的数据库中

    如何在 ruby 中创建迁移 其中默认值是字符串而不是整数 我想将枚举存储到数据库中 但我不想将其存储为整数 因为这样对于另一个应用程序来说没有意义想要使用同一张桌子 我该怎么做default female 代替default 0 clas
  • Rust 数组是否有与 JavaScript 的 indexOf 等效的东西?

    var fruits Banana Orange Apple Mango var index fruits indexOf Apple let fruits Banana Orange Apple Mango let index fruit
  • 液体标记图过滤器示例

    我可以举一个有关 Liquid 贴图过滤器如何工作的通用示例吗 似乎没有这方面的文档 映射过滤器是 映射 收集给定属性上的数组 但如何确定该属性 这个例子存在 液体模板贴图过滤器 https stackoverflow com questi
  • 使用 Delphi 10.2.1 Tokyo 的模态 Android 对话框

    我有以下用于在 Android 上显示模式消息的 Delphi 代码 该代码在 10 1 Berlin 上运行良好 但在 Delphi 10 2 1 Tokyo 上停止运行 此过程现在会挂起 Android 应用程序 procedure c
  • 使用 TArray 而不是 Array of T 的原因是什么?

    我正在将遗留的 Delphi 应用程序迁移到 Delphi XE2 我想知道是否有充分的理由替换定义为的数组Array of MyType to TArray
  • 从由空格分隔的单个输入整数列表创建二维数组

    我正在解决一些问题geeksforgeeks我遇到了一个特定的问题 其中在测试用例中提供了输入 如下所示 2 2 denotes row column of the matrix 1 0 0 0 all the elements of th
  • 展平数组:保持索引、值等于数组中的位置

    我在尝试以特定方式展平数组时遇到了一些麻烦 这里有一个print r我想要展平的数组的视图 Array 1 gt Array 8 gt 1 9 gt 2 10 gt Array 15 gt Array 22 gt 1
  • 指针数组与元素数组

    今天早上我和一位同事就这个话题进行了讨论 他说 将数组分配为指针数组总是更好 因为单独分配每个元素更有机会获得空闲内存块 有点像这样 Consider n elements as a dynamic value int n elements
  • 在网格上拖动时拖动图像更改

    我正在 StartDrag 上创建自定义 DragObject 的实例 procedure TForm1 GridStartDrag Sender TObject var DragObject TDragObject begin DragO

随机推荐

  • 如何阻止 IE7 由于 hasLayout 清除浮动

    我有一个包含元素 其中包含许多浮动元素 该包含元素还应用了百分比宽度值 在 IE7 中 包含浮动的元素后面的内容被清除 因为宽度值赋予了它 hasLayout 我认为 我不希望包含元素具有布局 但我确实需要它具有明确的宽度 有没有办法在 I
  • 在 bitbucket ssh 连接期间,Linux 终端上出现“错误的配置选项”。

    我想开始使用 bitbucket 我已经按照教程的步骤连接到他们的服务器 link https confluence atlassian com pages viewpage action pageId 270827678 配置文件总是有问
  • Sparklyr - 更改 Spark 中的日期格式

    我有一个 Spark 数据框 其中有一列characters作为 20 01 2000 日 月 年 但我试图将其更改为日期格式 这样我就可以使用这里的功能 https cwiki apache org confluence display
  • 计算两个列表中匹配元素的数量

    我有 2 个包含随机数量元素的列表 例如 A 1 2 4 5 和 B 1 2 3 结果应该是2 我尝试过的代码 domains Numbers1 integer Numbers2 integer int list integer predi
  • 在C中存储对lua函数的引用

    我有一个用 C 实现的基本事件处理程序 我的应用程序中还有一个嵌入式 Lua 解释器 我需要它与事件管理器交互 最终目标是能够拥有一个事件处理程序 在事件触发时同时执行 C 和 Lua 函数 我的问题是我无法想出一种简单的方法来存储对 C
  • 当命名空间应该被继承时,为什么 cxf 对没有命名空间前缀的元素抛出解组错误

    我正在创建一个在 Java 11 Spring Boot 服务器中运行并向 Java 8 服务器发出请求的 SOAP 客户端 我在 Gradle 6 9 版本中使用 cxf rt frontend jaxws 3 4 3 和 cxf rt
  • 如何通知Android Widget重画

    我有一个 Android Widget 使用RemoteViewsFactory为了填充ListView 我的数据源是一个异步 JSON 调用 可以随时完成 它不是推送通知 现在代码位于onDataChanged看起来像这样 Overrid
  • 在 MVC 操作中隐藏查询字符串

    我想将查询字符串隐藏到我的控制器的操作中 在我的应用场景中是这样的 1 我已在新窗口中打开新操作 var check Particular String var url rootUrl Home Preview Docs check win
  • 是否可以通过 flutter app 分享您的位置

    我在 flutter dart 中构建了一个应用程序来访问用户的位置 我现在想通过 Whatsapp 电子邮件等共享用户当前的物理位置 但不是作为坐标 我尝试过地理定位和位置 但似乎只能获取坐标 下面是我的分享按钮的片段 其中显示了坐标 分
  • cls() 函数在类方法中做什么?

    今天查看别人的代码 看到了这样的内容 class A B Omitted bulk of irrelevant code in the class def init self uid None self uid str uid classm
  • 过载解析异常

    不确定这是否是 C 4 特定的 但只是注意到了这一点 考虑以下类 class Base protected void Foo object bar DayOfWeek day class Program Base protected voi
  • PDO 相当于 mysql_fetch_array

    我正在努力处理相当于以下查询的 PDO 该查询计算队列中有多少个新项目 并计算出完成它们需要多少周 从而给我一个工作堆栈时间表 count new to be made new SELECT FLOOR SUM TotalNew 7 AS
  • Unity 容器 - 延迟注入

    假设我有课 class Foo FooBase public Foo Settings settings IDbRepository db base settings this db db 基本上 FooBase 通过构造函数接收设置并从配
  • java.lang.ClassCastException:[Ljava.lang.Object;无法转换或 BeanUtils.copyProperties 不起作用

    我是 JPA 新手 并且 Spring Boot 在使用 Query param 时无法获取 api 响应 我尝试实现内部联接 存储库类 Transactional rollbackFor Exception class Modifying
  • 堆栈分配的 RAII 对象与 DI 原理

    在 C 中 我经常使用 RAII 风格的对象来使代码更可靠 并将它们分配在堆栈上以使代码更具性能 并避免 bad alloc 但是在堆栈上创建具体类的对象违反了依赖倒置 DI 原则并阻止了模拟该对象 考虑以下代码 struct IInput
  • 实体框架工具不适用于 UWP 应用程序 C#

    启动项目 EFGetStartedUWP 是一个通用 Windows 平台应用程序 此版本的 Entity Framework Core 包管理器控制台工具不支持此类项目 有关将 EF Core Tools 与 UWP 项目结合使用的详细信
  • 我可以列表初始化仅移动类型的向量吗?

    如果我通过 GCC 4 7 快照传递以下代码 它会尝试复制unique ptrs 进入向量 include
  • 求解热方程

    我求解金属棒的热方程 一端保持在 100 C 另一端保持在 0 C 如下 import numpy as np import matplotlib pyplot as plt dt 0 0005 dy 0 0005 k 10 4 y max
  • '.' 之前应有主要表达式代币

    我已经为此奋斗了一段时间并环顾四周 但我不确定我做错了什么 错误 错误 标记之前应有主表达式 addElement 方法内的大部分代码都会弹出 涉及 BinaryNode variable 但我完全不知道在这里要做什么 include
  • 在delphi中传递不同枚举类型的混合

    我需要编写一个可以传递不同枚举选择的过程 type TEnumOne eOneFlagOne eOneFlagTwo TEnumTwo eTwoFlagOne eTwoFlagTwo 该方法应该采用不同的枚举 Process eOneFla