Hola carlosCalle, bienvenido a los foros de Club Delphi
Como es costumbre, te invitamos a leer nuestra
guía de estilo
Según entiendo los requisitos que solicitas son:
- El Edit debe tener el foco en todo momento
- Cuando el Edit recibe datos estos deben añadirse a la tabla y el cursor quedar posicionado allí.
- Los usuarios deberán poder desplazarse por los registros con las teclas arriba/abajo.
Ejemplo de un modo en que podrías hacerlo:
Código Delphi
[-]
...
interface
procedure TForm1.FormCreate(Sender: TObject);
begin
el_Edit.TabOrder := 0;
DBGrid1.Enabled := False;
end;
procedure TForm1.FormActivate(Sender: TObject);
var
R : TRect;
begin
R := el_Edit.BoundsRect;
MapWindowPoints(Handle, 0, R, 2);
ClipCursor(@R);
end;
procedure TForm1.el_EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case Key of
VK_DOWN : DataSet.Next;
VK_UP : DataSet.Prior;
VK_RETURN : begin DataSet.Append;
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;
La situación no me quedó del todo clara, por lo que no voy a sugerirte algún método alternativo para la acción.
Saludos