Einzelnen Beitrag anzeigen

Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: rechtsbündiges Stringgrid

  Alt 24. Okt 2004, 10:38
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

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat