Delphi:TStringGrid のセルのテキストを中央揃えにする方法は?
トップコード(OnDraw部分)を使用すると、最初のテキストが削除されず、古いテキストに新しいテキストが書き込まれ、1つのセルが複製されます。
Delphi:TStringGrid のセルのテキストを中央揃えにする方法は?
トップコード(OnDraw部分)を使用すると、最初のテキストが削除されず、古いテキストに新しいテキストが書き込まれ、1つのセルが複製されます。
TCanvas.FillRect
新しいテキストを書き出す前に、呼び出しを追加する必要があります。
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
S: String;
begin
S := StringGrid1.Cells[ACol, ARow];
StringGrid1.Canvas.FillRect(Rect);
SetTextAlign(StringGrid1.Canvas.Handle, TA_CENTER);
StringGrid1.Canvas.TextRect(Rect,
Rect.Left + (Rect.Right - Rect.Left) div 2, Rect.Top + 2, S);
end;
TStringGrid.DefaultDrawing
これを機能させるには、が に設定されていることも確認する必要があることに注意してくださいFalse
。