Hola carlosCalle.
A ver, fijate si te sirve con estos cambios:
Código Delphi
[-]
...
interface
procedure TForm1.FormCreate(Sender: TObject);
begin
elEdit.TabOrder := 0;
DBGrid1.Enabled := False;
end;
procedure TForm1.FormActivate(Sender: TObject);
var
R : TRect;
begin
R := elEdit.BoundsRect;
MapWindowPoints(Handle, 0, R, 2);
ClipCursor(@R);
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
gr: TDBGrid;
begin
gr := TDBGrid(Sender);
if gdSelected in State then
begin
gr.Canvas.Brush.Color := clBlue;
gr.Canvas.Font.Color := clWhite;
gr.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
procedure TForm1.elEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case Key of
VK_DOWN : begin
DataSet.Next;
Key := 0;
end;
VK_UP : begin
DataSet.Prior;
Key := 0;
end;
VK_RETURN : begin DataSet.FieldByName('Campo-para-el_Edit').Value := el_Edit.Text; DataSet.Post;
end;
VK_ESCAPE : Close; end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ClipCursor(nil);
end;
(recuerda que es un ejemplo y que seguramente tengas que adaptarlo)
Saludos