いつもお世話になっております。
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までの乱数とします。
・変数の桁指定ができるのでしょうか?
・右寄せにするよい方法はあるのでしょうか?
よろしくお願いします。
フォントを固定幅のものにして,例えば数値を一定の桁数の文字列に
変換すれば可能です.
以下は8桁の場合です.
Printer.Canvas.Font.Name:='MS ゴシック'
Printer.Canvas.Textout(200,200,Format('%8d',[Data2]));
別の掲示板に質問していますが,どちらか一方にした方がいいと思いますよ.
理由は以下のメール関係のサイトで調べて下さい.
http://homepage2.nifty.com/Mr_XRAY/Links.htm#Mail
>Printer.Canvas.Textout(200,200,Format('%8d',[Data2]));
この場合のData2は整数値とします.
Mr.XRAYさん、こんにちは
初心者の私でもわかりやすい説明をありがとうございます。
早速やってみます。
あと、マナーが悪かったこと、教えていただいてありがとうございます。
以後、気をつけます。
皆さん今後ともよろしくお願いします。
できました!!
ぴったりそろえることができました。
どうもありがとうございました。
これからもよろしくお願いします。
できました!!
ぴったりそろえることができました。
どうもありがとうございました。
これからもよろしくお願いします。
ツイート | ![]() |