Einzelnen Beitrag anzeigen

Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#1

StrinGrid Feldinhalt wird "Unsichtbar"

  Alt 9. Aug 2005, 16:27
Hi also ich habe per folgendem Code meine Stringgridfelder weiß gemacht, und dann den Text mittig gesetzt.

Delphi-Quellcode:
  dy := (Rect.Bottom-Rect.Top-StringGrid1.Canvas.TextHeight(StringGrid1.Cells[ACol, ARow])) div 2;
  dx := (Rect.Right-Rect.Left-StringGrid1.Canvas.TextWidth(StringGrid1.Cells[ACol, ARow])) div 2;

  if (acol = 0) or (arow = 0) then begin
    StringGrid1.Canvas.Brush.Color := clBtnFace;
    StringGrid1.Canvas.FillRect(Rect);
    StringGrid1.Canvas.TextOut(Rect.Left+dx, Rect.Top+dy, StringGrid1.Cells[ACol, ARow]);
  end;

  if (acol = 1) or (acol = 4) or (acol = 5) then begin
    if (arow >0) then begin
      StringGrid1.Canvas.Brush.Color := clWindow;
      StringGrid1.Canvas.FillRect(Rect);
      StringGrid1.Canvas.TextOut(Rect.Left+dx, Rect.Top+dy, StringGrid1.Cells[ACol, ARow]);
    end;
  end;
Wenn ich nun ein Feld markiere und dann das Grid den Focus verliert "verschwindet" der Inhalt.
Normalerweise wird das Feld ja blau und die Schrift weiß da ich die Felder aber im onDraw selbst bepinselt habe scheint nur die Schrift weiß (also unsichtbar) zu werden ... (nicht alle Felder sind weis hab auch rote/grüne aber da könnt ich damit leben)
hat jemand ne Ahnung, wie ich das umgehen kann

Wenn ich den Inhalt auch ohne das OnDraw-Bepinseln Zentrieren könnte könnte ich bei den weißen Feldern auch darauf verzichten und hätte dann das Problem nicht mehr aber wie ???
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat