こんにちは。
開発環境は、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っぽくするのはどうすれば良いのでしょうか?
以上、よろしくお願いします。
自己レスです。
rect.Left:=rect.Left-4;を1行追加したら上手くいきました。
お騒がせしました。
ツイート | ![]() |