Zitat von
sh17:
Ich hab jetzt nicht den Code im Kopf, aber folgender Vorschlag:
Die Eigenschaft Cells[x,y] : TCell des Grids so implementieren, dass das Grid zwar mitbekommt, welche Zelle angefragt wird (bei Zugriff auf Cells[x,y]), dann aber nur die Zelle an sich zurück liefert. Der Zelle kannst Du dann zuweisen, was Du willst.
oups, hatte deine Antort übersehen. Wenn ich dich verstnaden habe, geht das aber eben nicht. wenn ich das als
Property CellValue[ACol, ARow: Integer]:TcellValue read GetcellValue write SetCellValue
mache, wird bei einem Aufruf Grid.cellvalue[x,y].blabla:=blabla beim Grid nur die getmethode aufgerufen, nicht die set-methode. und in der Getmethode muß ich dann wissen, ob die Zelle neugezeichnet werden muß oder nicht, ich kann sie dort nicht immer neuzeichnen, da cellvalue auch bei Drawtext aufgerufen wird. Ich wäre so ganz schnell in einer Endlosschleife.
Zitat:
oder Du machst es wie bei virtuellen Komponenten, Du rufst Grid.Repaint auf. Ist natürlich nichts automatisches
geht auch nicht. Erstens habe ich das sicherlich Geschwindigkeitsproblem, wenn ich bei einer einzelnen Zelländerung immer das ganze Grid neuzeichne, außerdem kann ich so schlecht unterscheiden, ob es überhaupt neu gezeichnet werden muß. Ich würde immer Grid.repaint aufrufen, auch wenn die Zelle nicht im sichtbaren Bereich liegt.
Mfg Frank