小编Del*_*ics的帖子

为什么我用枚举类型得到"type has typeinfo"错误

我已经声明了以下枚举类型,其中我希望第一个成员的序数值为1(一)而不是通常的0(零):

  type
    TMyEnum = (
               meFirstValue = 1,
               meSecondValue,
               meThirdValue
              );
Run Code Online (Sandbox Code Playgroud)

如果我调用TypeInfo(),例如作为对GetEnumName()的调用的一部分,我得到一个编译器错误:

  GetEnumName(TypeInfo(TMyEnum), Ord(aValue));
Run Code Online (Sandbox Code Playgroud)

错误:"E2134:类型'TMyEnum'没有typeinfo"

为什么是这样?

我知道,类只有所属类别,如果它们与编译$ M启用编译器选项,或者(在某些类是,如获得TPersistent,但我不认为有具有所属类别的枚举类型的任何特殊情况).

delphi enums rtti typeinfo

19
推荐指数
2
解决办法
6584
查看次数

在Delphi 7中有效的ZeroConf / Bonjour代码在2009年无法正常工作

我对DNSServiceRegister具有以下声明:

  function DNSServiceRegister
      (
      var sdRef: TDNSServiceRef;
      const flags: TDNSServiceFlags;
      const interfaceIndex: uint32_t;
      const name: PUTF8String;                    //* may be NULL */
      const regType: PUTF8String;
      const domain: PUTF8String;                  //* may be NULL */
      const host: PUTF8String;                    //* may be NULL */
      const port: uint16_t;
      const txtLen: uint16_t;
      const txtRecord: Pointer;                 //* may be NULL */
      const callBack: TDNSServiceRegisterReply; //* may be NULL */
      const context: Pointer                    //* may be NULL */
      ): TDNSServiceErrorType; stdcall; external DNSSD_DLL;
Run Code Online (Sandbox Code Playgroud)

在我的Bonjour框架中,对于已启用的已宣布服务(即实际上开始通过Bonjour宣布自身),我有以下响应:

  procedure TAnnouncedService.Activate;
  var
    flags: …
Run Code Online (Sandbox Code Playgroud)

delphi bonjour zeroconf delphi-2009

4
推荐指数
1
解决办法
1988
查看次数

标签 统计

delphi ×2

bonjour ×1

delphi-2009 ×1

enums ×1

rtti ×1

typeinfo ×1

zeroconf ×1