• ベストアンサー

delphiでの文字表示書式

delphiにて、以下のような書式設定はできるのでしょうか? ゼロサプレス+カンマ表示+桁数固定での表示をさせたいと思っております。 例)数値データ → 変換後(6桁固定)   「1000」    「 1,000」 簡単な方法はありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

こんにちは。 こんな感じではどうでしょう? var r: Currency ; begin  r := StrToFloat(Edit1.Text);  Edit2.Text := Format('%6.0n',[r]); end; ↓こちらを参考にしました。 http://forum.nifty.com/fdelphi/faq/00149.htm

参考URL:
http://forum.nifty.com/fdelphi/faq/00149.htm
wwwwtaka
質問者

お礼

Currency型でのFormatなら一度に変換できるのですね。 また、参考URLも大変勉強になりました。 どうもありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • prome
  • ベストアンサー率32% (64/196)
回答No.3

#1です。 #2さんの回答の方がスマートですね。 それに100000を入力しても100,000になるし。 Format関数にあまり慣れてないので... #1,#2、どちらの回答でも整数を扱うにもかかわらず Floatがでてくるんですね。 Delphiの仕様なのだろうか。

すると、全ての回答が全文表示されます。
  • prome
  • ベストアンサー率32% (64/196)
回答No.1

ちょっと強引わざですが、こんなのはどうでしょうか。 sをstringで定義しておき、 Edit1に入力した数値を、Edit2に返すという仕様です。 s := FormatFloat('##,##0', StrToInt(Edit1.Text)); s := StringOfChar(' ', 6) + s; Edit2.Text := Copy(s, Length(s)-6+1, 6); これだと100000を入力すると、00,000になりますが、 数値は5桁以内に限られるならこれでいいかも。 もっとスマートな方法があればいいのですが。

wwwwtaka
質問者

お礼

こんなに早く回答していただいて、 ありがごうございます。 とても参考になります。 これよりスマートとなると、2行以内での実現ですから、 ないような気がしますね。

すると、全ての回答が全文表示されます。

関連するQ&A