Ver la Versión Completa : Validar/Grabar linea de un DBGrid con Enter
jadelphi
24-05-2005, 12:42:20
Hola colegas, en un dbgrid voy metiendo datos en una línea pasando de una columna a otra pulsando enter pero para grabar la línea tengo que pulsar la tecla "fecha abajo". ¿Cómo puedo sustituirla para poder validar la línea pulsando Enter?
Gracias.
Salu2.
Casimiro Notevi
24-05-2005, 14:30:42
Puedes poner en el evento keydown del grid si se ha pulsado la tecla 'enter' y si estás en la columna apropiada, algo parecido a esto:
procedure Tform1.grArticulosKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var iCol : Integer;
begin
if (key in [VK_RETURN,VK_DOWN,VK_UP]) then
begin
iCol := grArticulos.FocusedColumn;
if iCol = iLastColumn then
...
hacerloquesea
...
end;
end;
jadelphi
25-05-2005, 18:00:11
Gracias colega pero no me sirve, me dice que FocusedColumn no definido, ¿será porque estoy usando Delphi 4 y esta versión no lo soporta ??
Pero de todas formas lo que yo quiero es no tener que llegar a pulsar la tecla flecha abajo (keydown) para nada, que con el Enter grabe la línea y pase a la línea de abajo.
Gracias.
Saludos.
Casimiro Notevi
26-05-2005, 00:37:39
pues facil, modifica un poco lo que te he puesto:
procedure Tform1.grArticulosKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var iCol : Integer;
begin
if key = VK_RETURN then
begin
iCol := TDrawgrid(grArticulos).Col;
//iCol := grArticulos.SelectedIndex;
//iCol := grArticulos.SelectedField.FieldNo;
if iCol = iLastColumn then
...hacerloquesea...
end;
end;
Casimiro Notevi
26-05-2005, 00:40:46
y si no quieres que funcionen la teclas de flechas en el grid
procedure Tform1.grArticulosKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var iCol : Integer;
begin
if (key in [VK_DOWN,VK_UP]) then
exit;
if key = VK_RETURN then
begin
iCol := TDrawgrid(grArticulos).Col;
//iCol := grArticulos.SelectedIndex;
//iCol := grArticulos.SelectedField.FieldNo;
if iCol = iLastColumn then
...hacerloquesea...
end;
end;
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.