Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Anular funcionalidad flecha abajo en grid (https://www.clubdelphi.com/foros/showthread.php?t=85108)

jafera 29-01-2014 17:05:23

Anular funcionalidad flecha abajo en grid
 
Buenas de nuevo a todos.

Tengo una duda que San Google ni mis conocimientos me han permitido disipar.

Es posible anular la funcionalidad Post al realizar flecha arriba o flecha abajo dentro de un dbgrid?

Necesitaría que solo realizara scroll arriba o abajo.

Lo que si he conseguido gracias a un post de Ecfisa es que al llegar al último registro no me añada ninguno nuevo y que para hacerlo tenga que dar al botón añadir del formulario.

Gracias por vuestro precioso tiempo.

Saludos

Josep

ecfisa 29-01-2014 17:47:46

Hola Josep.

Fijate si te sirve de este modo:
Código Delphi [-]
...
var
  NoPost: Boolean = False;

procedure TForm1.DataSetBeforePost(DataSet: TDataSet);
begin
  if NoPost then Abort;
end;

type
  DBGridExt = class(TDBGrid);

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  with DBGridExt(TDBGrid(Sender)) do
  begin
    case Key of
      VK_TAB :NoPost := SelectedIndex = Columns.Count-1; // (si no deseas que guarde con TAB)
      VK_DOWN:begin
                NoPost := True;
                if (Key = VK_DOWN)and(Row = RowCount-1) then Abort;
              end;
      VK_UP  :NoPost := True;
    end;
  end;
end;
Eso si, tendras que recordar poner el valor de NoPost en False antes de llamar al método Post, por ejemplo:
Código Delphi [-]
procedure TForm1.btnGuardar(Sender: TObject);
begin
  NoPost:= False;
  DataSet.Post;
end;

Saludos :)

jafera 29-01-2014 18:36:01

Mucha gracias Ecfisa.

Solo me queda decirte una cosa y la voy a decir en mayúsculas "UNA RESPUESTA EXCELENTE, ES EXACTAMENTE LO QUE BUSCABA".

Ya use la funcionalidad del VK_Down que habías puesto en otro hilo, pero esto de hoy es soberbio, realmente lo que buscaba, has dado en el clavo.

Sigo pensando que este foro es una mina y muchas veces me gustaría dar más de lo que recibo, pero tengo mis limitaciones las cuales voy superando gracias a vuestras ayudas.

Saludos eufóricos

Josep


La franja horaria es GMT +2. Ahora son las 00:37:34.

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