canvasでの数字の桁合わせの方法は?

解決


hirodon  2005-02-14 00:29:33  No: 13214

いつもお世話になっております。
hirodonです。
D7使用です。
先日印刷方法を教えていただいて、ほとんどできたのですが、
canvasに出力したときの数字の桁を合わせるよい方法はないでしょうか?
現在こんな感じで、出力しています↓

Data1 := Table1.FieldByName('文字1').AsString;
//次の数値1、数値2を桁指定などして、右寄せにしたいのですが・・・・
Data2 := IntToStr(Table1.FieldByName('数値1').AsInteger);
Data3 := IntToStr(Table2.FieldByName('数値2').AsInteger);
Data4 := Table1.FieldByName('文字2').AsString;
Printer.Canvas.TextOut(50,200 + 140 * i,Data1);
Printer.Canvas.TextOut(650,200 + 140 * i,Data2);
Printer.Canvas.TextOut(930,200 + 140 * i,Data3);
Printer.Canvas.TextOut(1210,200 + 140 * i,Data4);
※データベースのデータを、ループ処理で全件出力しています
※数値1,2は0〜999までの乱数とします。

・変数の桁指定ができるのでしょうか?
・右寄せにするよい方法はあるのでしょうか?
よろしくお願いします。


Mr.XRAY  URL  2005-02-14 00:54:26  No: 13215

フォントを固定幅のものにして,例えば数値を一定の桁数の文字列に
変換すれば可能です.
以下は8桁の場合です.

Printer.Canvas.Font.Name:='MS ゴシック'
Printer.Canvas.Textout(200,200,Format('%8d',[Data2]));

別の掲示板に質問していますが,どちらか一方にした方がいいと思いますよ.
理由は以下のメール関係のサイトで調べて下さい.

http://homepage2.nifty.com/Mr_XRAY/Links.htm#Mail


Mr.XRAY  URL  2005-02-14 00:55:46  No: 13216

>Printer.Canvas.Textout(200,200,Format('%8d',[Data2]));

この場合のData2は整数値とします.


hirodon  2005-02-14 01:14:33  No: 13217

Mr.XRAYさん、こんにちは

初心者の私でもわかりやすい説明をありがとうございます。
早速やってみます。

あと、マナーが悪かったこと、教えていただいてありがとうございます。
以後、気をつけます。

皆さん今後ともよろしくお願いします。


hirodon  2005-02-14 03:47:22  No: 13218

できました!!
ぴったりそろえることができました。

どうもありがとうございました。
これからもよろしくお願いします。


hirodon  2005-02-14 03:48:05  No: 13219

できました!!
ぴったりそろえることができました。

どうもありがとうございました。
これからもよろしくお願いします。


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

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






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