StringGridのセル位置について

解決


やまだ  2013-09-06 19:46:41  No: 45207

こんにちは。
開発環境は、win7 home premium(sp1)、delphiXE3 enterpriseです。

stringgridを不慣れですが、先日から使い始めました。

セル位置を右寄り、中央寄せとかに変更したいと思っています。

いろいろなサイトを参考にして、もちろんこちらのサイトも参考にしてコードを書いてみました。

以下はDrawCellイベントに書き込んだソースです。usesにGraphUtilを追加しています。

  with (Sender as TStringGrid) do begin
    if (gdFixed in State) then
    begin
      GradientFillCanvas(Canvas, GradientStartColor,GradientEndColor,Rect,gdVertical);
      DrawText(Canvas.Handle,PChar(Cells[ACol,ARow]),-1,Rect,DT_SINGLELINE or DT_CENTER or DT_VCenter);
    end
    else
    begin
      Canvas.Brush.Style := bsSolid;
      Canvas.FillRect(Rect);
      DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]),Length(Cells[ACol,ARow]),Rect, DT_SingleLine or DT_VCenter or DT_CENTER);
    end;
  end;

これだと二重にデータが書かれるのは防げるのですが、列ごとに前と後ろに四角っぽいのが表示されてしまします。

この四角をなくして、もともとのstringgridっぽくするのはどうすれば良いのでしょうか?

以上、よろしくお願いします。


やまだ  2013-09-06 19:53:15  No: 45208

自己レスです。

rect.Left:=rect.Left-4;を1行追加したら上手くいきました。

お騒がせしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加