Einzelnen Beitrag anzeigen

Mazen

Registriert seit: 6. Okt 2011
66 Beiträge
 
Delphi 7 Professional
 
#4

AW: TStringGrid OnDrawCell - Bestimmte Felder makieren

  Alt 20. Dez 2012, 09:47
Geht leider nicht weil ich in die Tabelle noch Überschriften, Summen, Differenzen etc. einfügen muss.
Sachen wie "negative Werte sollen rot makiert werden" sind kein Problem. Nur lässt sich vom Tabelleninhalt eben nicht immer ableiten wie ein Feld formatiert werden muss.
Das müsste ich manuell machen können.

Ich werd nochmal was probieren und meinen Versuch dann hier posten, vielleicht kann man mir dann besser helfen

Edit: Das muss jetzt der Vorführeffekt sein :/
Habs nochmal so gemacht wie ich es schonmal hatte. Aber jetzt funktionierts
Ich denke das ist nicht die einfachste und beste Methode das zu lösen, aber es funktioniert...

Wenn eine Zelle fett soll speicher ich die Koordinaten in einer TStringList. (Ich finde damit ist einfacher zu arbeiten als mit einem Array. Ich teile beide Koordinaten mit einem Strich:

Code:
listBold.Add(IntToStr(x)+'|'+IntToStr(y));
Meine OnDrawCell-Methode sieht dann so aus:

Code:
if listBold.Count > 0 then
begin
  for i:=0 to listBold.Count-1 do
  begin
    if (ACol = StrToInt(AnsiLeftStr(listBold[i],AnsiPos('|',listBold[i])-1))) AND (ARow = StrToInt(AnsiRightStr(listBold[i],Length(listBold[i])-AnsiPos('|',listBold[i])))) then
    begin
      StringGrid1.Canvas.Brush.Color := StringGrid1.Color;
      StringGrid1.Canvas.FillRect(Rect);
      StringGrid1.Canvas.Font := StringGrid1.Font;
      StringGrid1.Canvas.Font.Style := [fsBold];
      StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2,
      StringGrid1.Cells[ACol, ARow]);
    end;
  end;
end;

Geändert von Mazen (20. Dez 2012 um 10:12 Uhr)
  Mit Zitat antworten Zitat