Zitat von
Hansa:
DT_VCENTER bewirkt nichts !
Wenn man sich die Hilfe anschauen würde, schon. DT_VCenter geht nur in Verbindung mit DT_Singleline. Dann würde aber der Text in den Zeilen zentriert werden, wenn die Zeilenhöhe zu hoch ist, würde der Text zu weit nach unten rutschen.
Wenn du dir den original code von drawcell anschaust, siehst du, daß der Text immer um 2 Pixel nach rechts und unten versetzt gezeichnet wird. Entweder du veränderts dein rect.top und rect.left auch um +2 oder nutzt inflaterect.
Delphi-Quellcode:
procedure sgRechts (sg: TStringGrid; Rect: TRect; ACol, ARow:Integer);
var st: String;
begin
sg.Canvas.FillRect(Rect);
st := sg.Cells[ACol,ARow];
InflateRect(rect,-2,-2); //<<----
DrawText(sg.Canvas.Handle, PChar(st), StrLen(PChar(st)),Rect,DT_RIGHT);
end;
Mfg Frank