Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Fontfarbe in TStringgrid ändern ;-)

  Alt 4. Mai 2017, 06:50
Gestern hatte ich leider keine Zeit mehr, um mir das Problem nochmal genauer anzusehen.

Soweit ich mich erinnern kann, musst du dich immer um das Zeichnen jeder Zelle kümmern. Also nicht nur bei denen, die du anders darstellen willst.
Ich kann es hier im Moment nicht testen (gerade kein Delphi verfügbar), aber wenn du den Source in etwa so änderst, sollte es besser funktionieren:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
 State: TGridDrawState);
var
  grdCanv : TCanvas; // Dadurch kürze Schreibweise ohne das "WITH"
  OldColor : TColor;
begin
  grdCanv := StringGrid1.Canvas;
  OldColor := grdCanv.Font.Color;
  if (ACol=4) and (ARow>0) then begin
    grdCanv.Font.Color:=clred;
  end;
  grdCanv.FillRect(Rect);
  grdCanv.Textout(Rect.Left+2,Rect.Top+2, StringGrid1.Cells[ACol,ARow]);
  // Statt Textout ist vielleicht TextRect die bessere Wahl
  grdCanv.Font.Color := OldColor;
end;
Auch wenn das "with" hier nicht das Problem ist, solltest du es vermeiden. Es verursacht immer wieder mal Probleme.
Peter
  Mit Zitat antworten Zitat