![]() |
OnDrawCell mit TextOut zeigt keinen Text
Hallo zusammen,
ich wollte ein StringGrid mehrfarbig mithilfe des OnDrawCell- Events befüllen, welches zum Start des Programms mit diversen Werten gefüllt wird. Die Farbe wird dabei mit .Objects dem Feld übergeben.
Delphi-Quellcode:
Das Befüllen der Farbe funktioniert einwandfrei, nur der Text wird nur im 1. Feld gedruckt, alle anderen Felder bleiben leer. Woran kann das Problem liegen?
procedure TForm.MyGridDrawCell(Sender: TObject; aCol,
aRow: Integer; aRect: TRect; aState: TGridDrawState); var celltext: String; color: TColor; begin with (Sender as TStringGrid) do begin color:= TColor(MyGrid.Objects[aCol, aRow]); celltext := MyGrid.Cells[aCol, aRow]; canvas.Brush.Color:= color; canvas.Font.Color:= clBlack; Canvas.FillRect(aRect); Canvas.TextOut(aCol, aRow, celltext); end; end; |
AW: OnDrawCell mit TextOut zeigt keinen Text
Delphi-Quellcode:
Canvas.TextOut(aRect.Left + 2, aRect.Top + 2, celltext);
|
AW: OnDrawCell mit TextOut zeigt keinen Text
Danke! Jetzt funktioniert's super.:thumb:
Meine Frage jetzt: Wenn
Delphi-Quellcode:
die Koordinaten sind, warum hat er dann nur im ersten Feld den Text ausgegeben?
aRect.Left+2, aRect.Top+2
|
AW: OnDrawCell mit TextOut zeigt keinen Text
Weil aCol und aRow von TextOut als Pixel interpretiert werden und so wohl immer in die erste Zelle oben/links geschrieben wurde. Schau dir ggf. mal TextOut an. BTW, im "with (Sender as TStringGrid) do" Block brauchst du das "MyGrid." nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 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