喫茶XRAYトップページ

[スレッド全体
]

[12139] plQueryPrevについて返信 削除
2018/8/14 (火) 10:45:43 peterpan
XRAYさん,いつも貴重な情報で助かっています。

今回XRAYさんの作品「plQueryPrev」コンポーネントをインストールし,ビルドしたところ次のようなメッセージ表示されエラーとなりました。

[dcc32 エラー] plQueryPrev.pas(1677): E2003 未定義の識別子 : 'CurrencyDecimals'

調べてみると「CurrencyDecimals」は  System.SysUtilsユニットで定義されているようです。
このユニットは uses に記述されていることも確認しました。

これ以上は私の力では原因を追求することはできません。

よろしければ対処方法をご教示ください。


[12140] Re:plQueryPrevについて返信 削除
2018/8/14 (火) 12:28:05 Mr.XRAY
> [dcc32 エラー] plQueryPrev.pas(1677): E2003 未定義の識別子 : 'CurrencyDecimals'

1677 行目,これですね.

          if FieldTyp = ftCurrency then begin
            {$IF CompilerVersion >= 24.0}
            Digit  := FormatSettings.CurrencyDecimals;  //***** ここ//
            {$ELSE}
            Digit  := CurrencyDecimals;
            {$IFEND}
            Result := CurrToStrF(PrnValue, ffCurrency, Digit);

多分,使用している Delphi のバージョンではこの記述は使用できないのです.
さて,どのバージョンからか... XE7 か ?
FormatSettings の仕様が変更されているハズです.
後で調べてみますが,とりあえず
Digit には 0 を代入しておけばいいのではないかと思います.



[12141] Re2:plQueryPrevについて返信 削除
2018/8/14 (火) 13:15:54 Mr.XRAY
> FormatSettings の仕様が変更されているハズです.
> 後で調べてみますが,とりあえず


以下のコードで確認しましたが,Dephi XE(UP1) Pro, XE5(UP2) Pro, XE7 Pro, [
10.2.3 Tokyo Community には CurrencyDecimals がありますね.う〜む.

procedure TForm1.Button1Click(Sender: TObject);
var
  LText : string;
begin
  LText := IntToStr(FormatSettings.CurrencyDecimals);
  MessageBox(Handle, PChar(LText), '結果', MB_ICONINFORMATION);
end;


[12142] Re3:plQueryPrevについて返信 削除
2018/8/14 (火) 14:17:02 igy
ちなみに、peterpan さんがお使いのDelphiのバージョンは、XE8 Enterprise版 ですか?
(Delphi Forumに書き込んでいる方と同じであれば・・)


[12143] Re4:plQueryPrevについて返信 削除
2018/8/14 (火) 14:42:31 igy
Delphi XE8 Starter版 で試したところ、

var
  LText : string;
begin
  LText := IntToStr(FormatSettings.CurrencyDecimals);
  MessageBox(Handle, PChar(LText), '結果', MB_ICONINFORMATION);
end;

は、コンパイルできました。

そして、"FormatSettings."を外してコンパイルすると、確かに、

> E2003 未定義の識別子 : 'CurrencyDecimals'

が出ますね。


[12144] Re5:plQueryPrevについて返信 削除
2018/8/14 (火) 15:05:44 Mr.XRAY
> そして、"FormatSettings."を外してコンパイルすると、確かに、
>
> > E2003 未定義の識別子 : 'CurrencyDecimals'
>
> が出ますね。


これなんですが,Delphi XE3 で変更がありました.

[ XE3 向けに行われた RTL の変更点 ]
http://docwiki.embarcadero.com/RADStudio/XE5/ja/Delphi_XE3_%E3%81%8A%E3%82%88%E3%81%B3_C%2B%2BBuilder_XE3_%E3%81%AE%E6%96%B0%E6%A9%9F%E8%83%BD#XE3_.E5.90.91.E3.81.91.E3.81.AB.E8.A1.8C.E3.82.8F.E3.82.8C.E3.81.9F_RTL_.E3.81.AE.E5.A4.89.E6.9B.B4.E7.82.B9

Delphi XE3 の CompilerVersion は 24.0 なので
   {$IF CompilerVersion >= 24.0}
で間違いないと思うのですが...


[12145] Re6:plQueryPrevについて返信 削除
2018/8/14 (火) 15:43:55 igy
▼ Mr.XRAYさん
> Delphi XE3 の CompilerVersion は 24.0 なので
>    {$IF CompilerVersion >= 24.0}
> で間違いないと思うのですが...


XE8で確認したところ、CompilerVersionの部分も問題ありませんでした。(10.1 Berlinでも同様。)

となると、peterpan さんのDelphiのバージョンなどの情報待ちですかね・・


[12146] Re7:plQueryPrevについて返信 削除
2018/8/14 (火) 16:01:59 Mr.XRAY
> となると、peterpan さんのDelphiのバージョンなどの情報待ちですかね・・

ですね.
確認のために Delphi 10.2.3 Tokyo Community に TplQueryPrev をインストール
してみました.一部エラーが発生しましたが問題部分ではありませんでした.
(インストールしたユニットファイルは plQueryPrevReg.pas)

エラーが発生したのは plQueryPrevReg.pas です.
BDE と BDE 関係のコントロールがないと発生するエラーでした.
これは後で修正して UP する予定です.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82