Einzelnen Beitrag anzeigen

Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#1

Formatieren einzelner Zellen in einem StringGrid

  Alt 26. Dez 2009, 13:03
Hallo,

ich arbeite im Moment mit einem Stringgrid und möchte verschiedene Zellen verschieden formatieren. Ich habe dazu um Forum schon einiges gefunden, allerdings läuft das ganze noch nicht einwandfrei. Wie ich herrausbekommen hab muss man bei einem Stringgrid ein bisschen "schummeln" aber gut.
In meinem Fall geht es vor allem um die Formatierung der Hintergrundfarbe und der Schrift. In dem Oncreate-Ereignis der Form lege ich für die einzelnen Zellen teilweise schon Text fest, anderen Zellen wird erst später ein Text, bzw. ein neuer Text zu gewiesen. Die Formatierung der Zellen soll über die ganze Zeit gleich bleiben. Es ändert sich nur unter Umständen der Text.

Nun habe ich gelesen, dass ich die Formatierung der Zellen in dem ondraw-Ereignis des Stringgrids festlegen kann:
Delphi-Quellcode:
procedure TForm5.SgstatsDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState); // das Stringgrid heißt 'sgstats'
begin
with TStringGrid(Sender).Canvas do begin
       if (ACol=1) and (ARow=1) then begin //später sollen es noch viel mehr Zellen formatiert werden es geht hier erstmal um eine Beispielzelle
          font.Style:=[fsBold];
          FillRect(Rect);
       end;
  end;
end;
Bei obigen code tritt das problem auf, dass jetzt der Text der in der Zelle [1,1] steht nicht mehr angezeigt wird.
Delphi-Quellcode:
DefaultDraw:=true;
{Diese Eigenschaft soll ja irgendwie wichtig sein, wenn sie auf "false" steht wird beim OnCreate-Ereignis nichts mehr in die Zellen geschrieben}
Schon mal im Vorraus vielen Dank für die Hilfe.

Kahpee
  Mit Zitat antworten Zitat