Hola shoulder.
A ver si esto es lo que estas buscando...
Código Delphi
[-]
...
type
TForm1 = class(TForm)
...
private
procedure DataSetAfterPost(DataSet: TDataSet);
public
end;
...
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.AfterPost := DataSetAfterPost;
end;
type
TDBGridEx = class(TDBGrid);
procedure GotoCurrentRow(Grid: TDBGrid);
var
ti: array [0..1] of TInput;
p : TPoint;
R : TRect;
cr: Integer;
begin
cr := TDBGridEx(Grid).Row;
R := TDBGridEx(Grid).CellRect(0, cr);
p := Form1.ClientToScreen(Point(Grid.Left+IndicatorWidth+10, R.Top+10));
Mouse.CursorPos := p;
ZeroMemory(@ti, SizeOf(ti));
ti[0].mi.dwFlags := MOUSEEVENTF_LEFTDOWN;
ti[0].Itype := INPUT_MOUSE;
ti[1].mi.dwFlags := MOUSEEVENTF_LEFTUP;
ti[1].Itype := INPUT_MOUSE;
SendInput(2, ti[0], SizeOf(TInput));
end;
procedure TForm1.DataSetAfterPost(DataSet: TDataSet);
begin
GotoCurrentRow(DBGrid1);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.AfterPost := nil;
end;
Saludos
