- ベストアンサー
delphi6 StringGrid セルの位取り
delphi6 StringGrid セルの位取り セルの値(数字)を右寄せ、位取りさせて表示させたいのですが、きれいに並びません。 A:='00,123,456,789' B:='00,000,123,456' にすると、きれいに並びますが、 A:='___123,456,789' B:='_________123,456' と、0を空白にすると並びがずれます。 右寄せにするプロパティはないでしょうか? QNo.258234に似た質問がありましたが、もっと簡単にできないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
DefaultDrawingをやめて自前で右寄せ表示するのが一番確実だとはおもいますが、 単純に桁合わせしたいなら、フォントを等倍フォントにかえればよいのではありませんか? プロポーショナルフォントをつかうと、多かれ少なかれ位置情報は狂ってきます。 わたしのばあいは大概MS ゴシックをしてしておいて 位置の狂いを最低限にしていますよ。
その他の回答 (1)
- kenzo-2000
- ベストアンサー率40% (18/44)
残念ながら「右寄せプロパティ」は存在しないと思います。 自分の場合は以下のようにしています。 ButtonとStringGridを設置し、 procedure TForm1.Button1Click(Sender: TObject); begin StringGrid1.Cells[1,1]:= '123,456,789'; StringGrid1.Cells[2,1]:= '123,456'; end; procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin StringGrid1.Canvas.FillRect(Rect); DrawText(StringGrid1.Canvas.Handle, PChar(StringGrid1.Cells[ACol,ARow]), Length(StringGrid1.Cells[ACol,ARow]), Rect, DT_RIGHT); end; Buttonをクリックしてみて確かめてください。 ※「この列」「この行」など、特定行列レベルで行うならAColやARowで処理を行いましょう。
お礼
あまり勉強もせず、DT_RIGHTがあるなんて知りませんでした。 これだと特定行列を指定できるのでありがたいです。 ありがとうございます。
お礼
MS P ゴシックのPはプロポーショナルの略だったのですね。 うまく、簡単にできました。 ありがとうございます。