GreatOne
В обычном TStringGrid штатными средствами похоже никак, так что варианты:
- взять какой-нибудь навороченный грид (тот же TMS, но они как правило платные)
- рисовать содержимое ячеек самостоятельно в OnDrawCell (муторно - так как необходимо учитывать состояния ячейки и соответсвенно ее красить, рисовать рамку фокуса и т.п.)
- сделать своего наследника от TStringGrid, у которого переопределить метод DrawCell [more=таким образом]
procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
...
procedure TMyStringGrid.DrawCell(ACol, ARow: Integer; ARect: TRect;
AState: TGridDrawState);
var
dd: Boolean;
s: string;
begin
s := Cells[ACol, ARow];
Canvas.TextRect(ARect, s, [tfLeft, tfTop, tfWordBreak]); // флаги на свой вкус
dd := DefaultDrawing;
DefaultDrawing := False;
inherited;
DefaultDrawing := dd;
end;[/more]
В обычном TStringGrid штатными средствами похоже никак, так что варианты:
- взять какой-нибудь навороченный грид (тот же TMS, но они как правило платные)
- рисовать содержимое ячеек самостоятельно в OnDrawCell (муторно - так как необходимо учитывать состояния ячейки и соответсвенно ее красить, рисовать рамку фокуса и т.п.)
- сделать своего наследника от TStringGrid, у которого переопределить метод DrawCell [more=таким образом]
procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
...
procedure TMyStringGrid.DrawCell(ACol, ARow: Integer; ARect: TRect;
AState: TGridDrawState);
var
dd: Boolean;
s: string;
begin
s := Cells[ACol, ARow];
Canvas.TextRect(ARect, s, [tfLeft, tfTop, tfWordBreak]); // флаги на свой вкус
dd := DefaultDrawing;
DefaultDrawing := False;
inherited;
DefaultDrawing := dd;
end;[/more]