Niech żyje lenistwo - mnie wystarczyło ok 30 sekund aby znaleźć odpowiedź. Korzystaj w przyszłości z Google. A oto podpowiedź zaczerpnięta ze strony delphins.republika.pl
[code]
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
R: TRect;
S: String;
Wyrownanie: Integer;
Wysokosc: Integer;
begin
R := Rect;
S := StringGrid1.Cells[ACol, ARow];
with StringGrid1.Canvas do
begin
{ parametry wyrównania tekstu }
Wyrownanie := DT_NOPREFIX;
case ACol of
0: Wyrownanie := Wyrownanie or DT_LEFT or DT_SINGLELINE or DT_VCENTER;
1: Wyrownanie := Wyrownanie or DT_RIGHT or DT_SINGLELINE or DT_VCENTER;
2: Wyrownanie := Wyrownanie or DT_LEFT or DT_WORDBREAK;
3: Wyrownanie := Wyrownanie or DT_CENTER or DT_WORDBREAK;
else
Wyrownanie := Wyrownanie or DT_RIGHT or DT_WORDBREAK;
end;
if gdSelected in State then
begin
{ nadanie odpowiedniego koloru komórkom }
case ACol of
1: Brush.Color := clNavy;
2: Brush.Color := clWhite;
else
Brush.Color := clWindow;
end;
end
else
begin
if ARow > StringGrid1.FixedRows -1 then { wszystkie wiersze edytowalne }
case ACol of
1: Brush.Color := clBlue;
2: Brush.Color := clYellow;
else
Brush.Color := clWindow;
end;
end;
{po ustawieniu kolorów wypełnij pole komórki }
if gdFixed in State then
begin
Font.Color := clNavy;
Brush.Color := StringGrid1.FixedColor;
FillRect( R );
DrawEdge(Handle, R, BDR_RAISEDINNER, BF_BOTTOMRIGHT or BF_TOPLEFT)
end
else
begin
{czcionka będzie miała kolor negatywny względem tła danej komórki }
Font.Color := Brush.Color xor $FFFFFF;
FillRect( R );
end;
{ zmniejsz prostokąt przed napisaniem tekstu }
InflateRect(R, -4, -2 );
{ zmień wysokość wiersza jeśli jest zbyt mała }
Wysokosc := DrawText( Handle, PChar( S ), -1, R, Wyrownanie or DT_CALCRECT );
if ( Wysokosc > (StringGrid1.RowHeights[ARow] - 2) ) then
begin
StringGrid1.RowHeights[ARow] := Wysokosc + 4;
end;
{ napisz tekst }
DrawText( Handle, PChar( S ), -1, R, Wyrownanie );
end;
[/code]
W określonych komórkach tekst będzie się różnie zachowywał - przeanalizuj to (zawijanie w kolumnach od 2 w zwyż)