Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   OnDrawCell mit TextOut zeigt keinen Text (https://www.delphipraxis.net/180216-ondrawcell-mit-textout-zeigt-keinen-text.html)

TForm1 1. Mai 2014 15:28

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:
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;
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?

Bjoerk 1. Mai 2014 15:41

AW: OnDrawCell mit TextOut zeigt keinen Text
 
Delphi-Quellcode:
Canvas.TextOut(aRect.Left + 2, aRect.Top + 2, celltext);

TForm1 1. Mai 2014 16:19

AW: OnDrawCell mit TextOut zeigt keinen Text
 
Danke! Jetzt funktioniert's super.:thumb:
Meine Frage jetzt: Wenn
Delphi-Quellcode:
aRect.Left+2, aRect.Top+2
die Koordinaten sind, warum hat er dann nur im ersten Feld den Text ausgegeben?

Bjoerk 1. Mai 2014 16:46

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