Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Позиционирование каретки в TStringGrid

01.01.2007
{ 
 
The following code allows you to position the caret
 
in a cell (InplaceEditor) of a StringGrid.
 
We need a Cracker class to access the InplaceEditor.
 
}
 
 type
   
TGridCracker = class(TStringGrid);
 
   
{...}
 
 implementation
 
 
{...}
 
 procedure
SetCaretPosition(Grid: TStringGrid; col, row, x_pos: Integer);
 
begin
   
Grid.Col := Col;
   
Grid.Row := Row;
   
with TGridCracker(Grid) do
     
InplaceEditor.SelStart := x_pos;
 
end;
 
 
// Get the Caret position from the focussed cell
// Ermittelt die Caret-Position der aktuellen Zelle
function GetCaretPosition(Grid: TStringGrid): Integer;
 
begin
   
with TGridCracker(Grid) do
     
Result := InplaceEditor.SelStart;
 
end;
 
 
// Example / Beispiel:
 
// Set the focus on col 1, row 3 and position the caret at position 5
// Fokusiert die Zelle(1,3) und setzt den Cursor auf Position 5
 
procedure TForm1
.Button1Click(Sender: TObject);
 
begin
   StringGrid1
.SetFocus;
   
SetCaretPosition(StringGrid1, 1, 3, 5);
 
end;

Взято с сайта: https://www.swissdelphicenter.ch