Hi allerseits,
bis einschließlich XE5 konnte ich mit
CellControlByRow auf eine einzelne Zelle einer TStringColumn zugreifen.
Das habe ich getan, um z.B. die Textfarbe einer Zelle zu ändern.
Delphi-Quellcode:
type
TColumnAccess = class( TColumn )
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Col, Row: Integer;
CellCtrl: TStyledControl;
begin
for Col := 0 to StringGrid1.ColumnCount - 1 do begin
for Row := 0 to StringGrid1.RowCount - 1 do begin
CellCtrl := TColumnAccess( StringGrid1.Columns[ Col ] ).CellControlByRow( Row );
if ( CellCtrl <> nil ) and ( CellCtrl is TTextCell ) then begin
TTextCell( CellCtrl ).StyledSettings := [];
TTextCell( CellCtrl ).FontColor := claBlueViolet;
TTextCell( CellCtrl ).Font.Family := 'Times New Roman';
TTextCell( CellCtrl ).Font.Style := [ TFontStyle.fsBold ];
TTextCell( CellCtrl ).Font.Size := 14;
end;
end;
end;
end;
Das funzt jetzt mit XE6 nicht mehr. Anscheinend gibt CellControlByRow nicht mehr die gewünschte Zelle zurück.
Hat jemend von Euch ein ähnliches Problem und evtl. schon eine Lösung gefunden?