AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal OnDrawCell mit TextOut zeigt keinen Text
Thema durchsuchen
Ansicht
Themen-Optionen

OnDrawCell mit TextOut zeigt keinen Text

Ein Thema von TForm1 · begonnen am 1. Mai 2014 · letzter Beitrag vom 1. Mai 2014
Antwort Antwort
TForm1

Registriert seit: 11. Jan 2014
128 Beiträge
 
FreePascal / Lazarus
 
#1

OnDrawCell mit TextOut zeigt keinen Text

  Alt 1. Mai 2014, 16:28
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?
Der Fehler sitzt immer vor dem Computer...
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: OnDrawCell mit TextOut zeigt keinen Text

  Alt 1. Mai 2014, 16:41
Canvas.TextOut(aRect.Left + 2, aRect.Top + 2, celltext);
  Mit Zitat antworten Zitat
TForm1

Registriert seit: 11. Jan 2014
128 Beiträge
 
FreePascal / Lazarus
 
#3

AW: OnDrawCell mit TextOut zeigt keinen Text

  Alt 1. Mai 2014, 17:19
Danke! Jetzt funktioniert's super.
Meine Frage jetzt: Wenn aRect.Left+2, aRect.Top+2 die Koordinaten sind, warum hat er dann nur im ersten Feld den Text ausgegeben?
Der Fehler sitzt immer vor dem Computer...
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: OnDrawCell mit TextOut zeigt keinen Text

  Alt 1. Mai 2014, 17:46
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz