お知らせ

電子会議

ライブラリ

FDelphi サイト全文検索

Delphi FAQ一覧

サンプル蔵



FDelphi FAQ
15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」

[Q]
StringGrid 各セルの内容を右寄せに出来るでしょうか?

[A]
OnDrawCellイベントに描画コードを書いてやります。
下記のようになります。
この例ではCol=2の時右寄せ、Col=3の時センタリングを行っています。

procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Longint;
  Rect: TRect; State: TGridDrawState);
begin
   If Not (gdFixed In State) And (Col In [2,3]) Then
   Begin
     StringGrid1.Canvas.FillRect(Rect);
     Rect.Top := Rect.Top + 2;
     If Col = 2 Then
        DrawText(StringGrid1.Canvas.Handle, PChar(StringGrid1.Cells[Col,Row]),
                     Length(StringGrid1.Cells[Col,Row]),
                     Rect, DT_RIGHT) // DT_RIGHTが右寄せ指定
     Else
        DrawText(StringGrid1.Canvas.Handle, PChar(StringGrid1.Cells[Col,Row]),
                     Length(StringGrid1.Cells[Col,Row]),
                     Rect, DT_CENTER); // DT_CENTERがセンタリング指定
   End;
end;

このほかに、DT_VCENTER Or DT_SINGLELINEとすると、縦方向でセンタリング
出来ます。

また、アスキーから出版されている「Delphi2.0 コンポーネントセット」に
付いているTComboGridコンポーネントを使うと、設計時に指定をするだけで、
上記の事がコーディング無しで行えます。


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。

Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会