« Update 2 for Delphi, C++Builder and RAD Studio XE2 | トップページ | Reasons to Migrate to Delphi XE2 »

¥マークが・・・。

Delphi2007で作った次のような関数が、Delphi XE2で正しく動作しませんでした。 この関数は、右寄せの目的で使っていて、「_______12,345円」というような文字列を返します。

function GetFormattedPrice(Price: Currency): String;
begin
  Result := (Format('%14m円',[Price]));
  Delete(Result,AnsiPos('\', Result),1); 
end;

実行結果(¥マークが残っています)

1_2




原因は、直接書いてる\マークです。これがShift-JISになっているようです。 ただ、DelphiXE2上で打ち直しても、うまく動作しないため次のようなコードにしました。
function GetFormattedPrice(Price: Currency): String;
const
  Yen = #$00A5; 
begin
  Result := (Format('%14m円',[Price]));
  Delete(Result,AnsiPos(Yen, Result),1);
end;

2

|

« Update 2 for Delphi, C++Builder and RAD Studio XE2 | トップページ | Reasons to Migrate to Delphi XE2 »