Włączasz w StrigGrid1.Options.goRowSizing i gocolsizing wtedy user może myszka regulować wysokość, ewentualnie za pomocą kodu regulijesz wysokosc Stringgrid1.RowHeights[i] gdzie 'i' to numer wiersza, Stringgrid1.ColWidths[i] gdzie 'i' to numer kolumny.
generalnie w normalny sposób nie można zrobić scalania komórek,
ale jak zaczniesz się bawić rysowaniem to jesteś w stanie scalić komórki w stringgridzie.
jak znajdę kodzik to podrzucę, ja wyeliminowałem sringgrida ze swojej aplikacji na rzecz html'a wyświetlanego w WebBrowse. ale wszystko zależy co chcesz osiągnąć
//edit
znalazłem ten kodzik, wklejam tak jak go miałem, jest to kodzik jednego z moich starych raportów.
sposób znaleziony na jakiejś stronce
If ARow > 1 then exit;
If ((ACol=5)or(ACol=9)or(ACol=13)or(ACol=17)or(ACol=21)or(ACol=25)
or(ACol=29)or(ACol=33)or(ACol=37)or(ACol=41)or(ACol=45)or(ACol=49)or(ACol=53)
or(ACol=57)or(ACol=61)or(ACol=65)) then exit;
If ((ARow>0) and (ACol>1)) then Exit;
with sender as tstringgrid do
begin
// extend rect to include grid line on right, if not last cell in row
If aCol < Pred(ColCount) Then
Rect.Right := Rect.Right + GridlineWidth;
If ((ACol<2) and (ARow=0)) then Rect.Bottom := Rect.Bottom + GridlineWidth;
If ACol=1 then Rect.Right := Rect.Right - GridlineWidth;
// figure out where the text of the first cell would start relative
// to the current cells rect.
y:= Rect.Top + 2;
x:= Rect.Left + 2;
for i:= 1 to aCol-1 do
x:= x - ColWidths[i] - GridlineWidth;
// Paint cell
Canvas.Brush.Color := clBtnFace;//$7FFFFF;
Canvas.Brush.Style := bsSolid;
Canvas.FillRect( Rect );
// Paint text of cell 1,1 clipped to current cell.
Canvas.TextRect( Rect, x, y, Cells[1,1] );
end;
zasada działania chyba jasna. miłej zabawy