Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Text mittig (center) im Stringgrid

  Alt 4. Jan 2018, 10:51
Hallo,

wenn ich im StringGrid einen Text mittig darstellen will, dann mach ich das immer so:

Delphi-Quellcode:
procedure TSetupForm.StringGrid_ZugzieleDrawCell(Sender: TObject;
  ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  Diff_Top: Integer;
  Diff_Left: Integer;
  S_Text: String;

begin
  //Text auslesen
  S_Text := StringGrid_Zugziele.Cells[ACol, ARow];

//bin mir jetzt nicht sicher, ob man diese Zeile für den Text benötigt
//ändere im Originalcode auch noch die Farbe
// StringGrid_Zugziele.Canvas.FillRect(Rect);

  //Text mittig berechnen
  Diff_Top := (Rect.Bottom - Rect.Top - StringGrid_Zugziele.Canvas.TextHeight(S_Text)) div 2;
  Diff_Left := (Rect.Right - Rect.Left - StringGrid_Zugziele.Canvas.TextWidth(S_Text)) div 2;

  StringGrid_Zugziele.Canvas.TextRect(Rect, Rect.Left + Diff_Left, Rect.Top + Diff_Top, S_Text);

end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat