Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi StringGrid -> Spalte zwei -> Text zentrieren (https://www.delphipraxis.net/103201-stringgrid-spalte-zwei-text-zentrieren.html)

HolgerCW 12. Nov 2007 13:24


StringGrid -> Spalte zwei -> Text zentrieren
 
Hallo zusammen,

wie kann ich bei einem StringGrid in z.B. Spalte zwei den Text zentrieren ?

Gruss

Holger

marabu 12. Nov 2007 13:35

Re: StringGrid -> Spalte zwei -> Text zentrieren
 
Hallo Holger,

wenn du die Ausgabe beim Ereignis OnDrawCell() mit DrawText() selbst erledigst, dann kannst du als Alignment DT_CENTER mitgeben.

Grüße vom marabu

Corpsman 12. Nov 2007 13:36

Re: StringGrid -> Spalte zwei -> Text zentrieren
 
In dem du Hergehst und alle Felder selbst malst.

Das geht mit OnDrawCell, oder so.

Und da gibts auch noch das Stichwort OwnerDrawFixed nach dem du schauen solltest...

Hansa 12. Nov 2007 17:41

Re: StringGrid -> Spalte zwei -> Text zentrieren
 
Die Suche wird zuviel liefern. "Zentriert" brauche ich nicht, aber das hier habe ich gefunden :

Delphi-Quellcode:
procedure sgZentriert (sg: TStringGrid; Rect: TRect; ACol, ARow:Integer);
var st: String;
begin
  sg.Canvas.FillRect(Rect);
  st := sg.Cells[ACol,ARow];
  DrawText(sg.Canvas.Handle, PChar(st), StrLen(PChar(st)),Rect,DT_CENTER);
end;
Aufruf im OnDrawCell wäre dann so ungefähr :

Delphi-Quellcode:
if (ACol = 2) then
        sgZentriert (Sender as TStringGrid, Rect, ACol, ARow);
Lässt sich sicherlich noch verbessern, aber das geht schon.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz