type で flag=(b=1,c=2,d=3) を D5 に翻訳するには

解決


にゃんこ  2012-09-17 23:21:28  No: 42938

Delphi 5 です。

最近の Jedi などの API でよく
type
 flag = (
   flag1 = $1,
   flag2 = $2,
   flag3 = $4
 )

のような記述を見かけます。

Delphi 5 にそのまま通すとエラーになるので
 flag = (
   flag1,
   flag2,
   flag3
 )
としています。

flag3 が $4 であるため、問題があると思うんですが
対処法等ありましたらご教示ください。

よろしくお願いいたします。


DEKO  2012-09-18 00:59:25  No: 42939

> 最近の Jedi などの API でよく
"明示的に順序値を割り当てられた列挙型" は Delphi 6 からですね。

type
 flag = (
   flag_Dmy_00, // 00: $00
   flag1,       // 01: $01
   flag2,       // 02: $02
   flag_Dmy_03, // 03: $03
   flag3,       // 04: $04
   flag_Dmy_05, // 05: $05
   flag_Dmy_06, // 06: $06
   flag_Dmy_07, // 07: $07
   flag4        // 08: $08
 );

あくまで列挙型を用いるという事であれば、
ダミーの列挙子を定義してやればよろしいかと思います。

[明示的に順序値を割り当てられた列挙型 (DocWiki)]
http://docwiki.embarcadero.com/RADStudio/ja/%E5%8D%98%E7%B4%94%E5%9E%8B#.E6.98.8E.E7.A4.BA.E7.9A.84.E3.81.AB.E9.A0.86.E5.BA.8F.E5.80.A4.E3.82.92.E5.89.B2.E3.82.8A.E5.BD.93.E3.81.A6.E3.82.89.E3.82.8C.E3.81.9F.E5.88.97.E6.8C.99.E5.9E.8B


にゃんこ  2012-09-18 04:53:35  No: 42940

なるほど。
その手がありましたね・・・。
embarcaderoのリンクまで有難うございます。

聞いてよかったです。
どうも有難うございました!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加