Was ist denn in dem verlinkten Beitrag zumindest von mir zu umständlich ? Das sind ganze ca. 10 Zeilen
Du verstehst wahrscheinlich den Trick nicht, der hinter meinem Beispiel steckt : in der Stringgrid-Zelle, die eventuell eine gecheckte oder ungecheckte Checkbox enthalten soll, da steht in Wahrheit eine Zahl drin, z.B. 0 oder 1. Abhängig von diesem Stringgrid Zelleninhalt wird dann dieser im Ondrawcell ausgewertet und eben die Checkbox gezeichnet oder auch gechecked oder eben nicht. Deshalb braucht man da 3 Werte. Bei mir 0,1,2. Für unsichtbar, sichtbar aber unchecked und sichtbar und checked.
Vielleicht hätte ich in dem alten Beitrag noch den Prozedur-Kopf angeben sollen. Der sieht so aus :
Delphi-Quellcode:
procedure Tfrm.sgArtNrDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
const IsChecked : array[Boolean] of Integer =
(DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
var sgSender : TStringGrid;
Es geht also lediglich darum, die entsprechenden Stringgrid-Zellen mit 0,1 oder 2 zu bestücken und sich das OnDrawCell zurechtzubauen. Im konkreten Fall hier musst du den Kopf hier verwenden, wegen der Konstantendeklaration und aus dem alten Beitrag den Code. Und fertig.