Veröffentlicht 15. Januar 200322 j Hallo! Weiß jemand wie ich in einem TDBGrid einzelne Zeilen oder Zellen einfärben kann? Ganze Spalten bringen es nicht. Ein anderes Grid kommt, glaube ich auch nicht in Frage, weil schon zuviel Code dranängt. Wenn jemand ein tolles(kostenfreies) Grid kennt, das von TDBGrid abstammt und deshalb zu meinem Prog kompatibel ist kann sich auch zu Wort melden! Danke im Voraus Maart:confused:
15. Januar 200322 j Das kannst du selber machen, benutz einfach das OnCustomDrawCell Event. Du bekommst ein Canvas und den Text der rein soll übergeben (wenn ich mich recht erinnere) und musst alles selbst zeichen. ungefähr so (aus dem Kopf): Canvas.Brush.color:= clRed; Canvas.Font.color:= clWhite; Canvas.FloodFill(ARect); {Wird soweit ich mich erinnere auch übergeben} Canvas.Textout(AText, X, Y); { AText ist der Text der rein soll (wird übergeben) und X, Y, die Koordinaten} ADone:= True; { Dem Grid sagen, das diese Zelle schon fertig ist, sonst zeichenet das Grid die Zelle nochmal} So ungefähr müsste es funktionieren. eine andere Möglichkeit gibt es nicht einzelne Zellen oder Reihen zu färben
17. Januar 200322 j Autor @JesterDay Danke, im Großen und Ganzen kam das schon einigermaßen hin. Ich hab es jetzt endlich! Für alle die es interessiert: Event: OnDrawColumnCell Wie JesterDay sagte: man bekommt Rect übergeben und kann damit FloodFill(Rect) ausführen. Ein Canvas (Tja, der kann was:D ) bekommt man nicht, aber ich hab einfach den vom Grid genommen. Ach, was soll das Geschwafel, hier ist der Code: procedure TReiheFrm.OriginalGrdDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin OriginalGrd.Canvas.Brush.Color := clred; if OriginalGrd.Columns[0].Field.AsInteger = 5 then begin OriginalGrd.Canvas.FillRect(Rect); if DataCol = 0 then Originalgrd.Canvas.TextOut(Rect.Left, rect.Top, OriginalGrd.Columns[0].Field.AsString) else Originalgrd.Canvas.TextOut(Rect.Left, rect.Top, OriginalGrd.Columns[1].Field.AsString); end; Ist zwar nicht alles so sauber, aber es funzt für meine düsteren Zwecke!
17. Januar 200322 j Originally posted by Pointerman @JesterDay Danke, im Großen und Ganzen kam das schon einigermaßen hin. Ich hab es jetzt endlich! Muss wohl daran liegen, dass ich schon lange kein Standart-Grid mehr verwendet hab
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.