|
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編纂委員会
|