![]() |
Zelleninhalt bei StringGrid vertikal zentrieren?
Ich arbeite gerade mit einem Stringgrid und möchte den Zellinhalt vertikal zentriert ausgeben (die Höhe der Zeile ist immer gleich groß und kann nicht geändert werden, deswegen die Vereinfachung mit + 9). Folgender Code steht in der DrawCell-Prozedur:
Delphi-Quellcode:
Jetzt steht der Inhalt aber zwei mal drin und zwar jetzt schön vertikal zentriert aber auch noch an der alten Position. Wie krieg ich den Text an der alten Position weg?
Stringgrid1.Canvas.TextOut(rect.left,rect.top+9, StringGrid1.Cells[acol,arow];
Hab schon mal probiert den Inhalt davor in eine Variable zu schreiben, danach dann den Zellinhalt löschen und dann zentriert auszugeben (mit dem Inhalt in der Variable). Das funktioniert zwar soweit schon, aber der Zellinhalt wird anscheinend immer neu gezeichnet da die Felder zu flackern anfangen. |
Re: Zelleninhalt bei StringGrid vertikal zentrieren?
Hi,
überzeichne vorher einfach die komplette Zelle:
Delphi-Quellcode:
StringGrid1.Canvas.Brush.Color:=clWindow; StringGrid1.Canvas.FillRect(Rect); stringgrid1.Canvas.TextOut(Rect.Left, Rect.Top+9, StringGrid1.Cells[ACol, ARow]); |
Re: Zelleninhalt bei StringGrid vertikal zentrieren?
Zitat:
|
Re: Zelleninhalt bei StringGrid vertikal zentrieren?
Zitat:
Bei mir wird dann nicht mehr angezeigt welche Zellen markiert sind, was sich jedoch mit einer Abfrage von State im OnDrawCell umgehen lässt (wenn gdSelected in State). |
Re: Zelleninhalt bei StringGrid vertikal zentrieren?
Hallo,
anstatt Canvas.Textout kann man auch die API-Function ![]()
Code:
Das Beispiel zentriert den Text sowohl vertikal als auch horizontal.
DrawText(StringGrid.Canvas.Handle,PChar(StringGrid.Cells[aCol,ARow]),-1,Rect,dt_singleline or dt_vcenter or dt_center);
[edit]Ich verwende gerade bei Grids eigentlich nur noch DrawText[/edit] |
Re: Zelleninhalt bei StringGrid vertikal zentrieren?
Setz bei dem Stringgrid im OI DefaultDrawing auf FALSE.
Allerdings musst du dann glaube ich deine Selection selber zeichenen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 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-2025 by Thomas Breitkreuz