Of course. The OnKeyDown event is more accessible than subclassing...
Here is the code from above modified such that it uses the OnKeyDown. It first detects whether CTRL-V is pressed and whether the clipboard contains text (this check was missing from the other code). Then it checkes whether the clipboard contains a full row or full column and, if true, inserts an empty row/column and moves the active cell to the start of this row/column. The inherited method, finally, pastes the clipboard at his new location.
@Joanna:
The paste operation goes to the position of the active cell (StringGrid.Col, StringGrid.Row).
When copying cells to the clipboard, the LCL grids put a tab character between cells in the same row, and a Lineending string (#13#10 on Windows) at the end of each row. The pasting process expects exactly these delimiters in order to be able to separate the individual cells.
In addition to the text format, the LCL grids also copy a html-coded string to the clipboard (not sure at which version this came in).