Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Validar/Grabar linea de un DBGrid con Enter (https://www.clubdelphi.com/foros/showthread.php?t=21646)

jadelphi 24-05-2005 12:42:20

Validar/Grabar linea de un DBGrid con Enter
 
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:
Código:

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:
Código:

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
Código:

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;



La franja horaria es GMT +2. Ahora son las 23:02:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi