jueves, 27 de noviembre de 2008

Interioridades de TDBNavigator.

A veces, cuando se usa el objeto TDBNavigator, es necesario averiguar qué botón a pulsado el usuario con objeto de ejecutar cierto código, amén del código propio de dicho botón. Para poder capturar/detectar el botón pulsado sugiero se emplee un código similar a éste:


procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
var
BtnName: string;
begin

case Button of
nbFirst : BtnName := 'nbFirst';
nbPrior : BtnName := 'nbPrior';
nbNext : BtnName := 'nbNext';
nbLast : BtnName := 'nbLast';
nbInsert : BtnName := 'nbInsert';
nbDelete : BtnName := 'nbDelete';
nbEdit : BtnName := 'nbEdit';
nbPost : BtnName := 'nbPost';
nbCancel : BtnName := 'nbCancel';
nbRefresh: BtnName := 'nbRefresh';
end;

MessageDlg(BtnName + ' button clicked.', mtInformation, [mbOK], 0);

end;


Por otro lado, cada botón puede sustituirse por el método asociado a la tabla, esto es:


Tabla.First; //Sitúa el cursor de la Tabla en primera posición.
Tabla.Prior; //Sitúa el cursor de la Tabla en la posición Anterior.
Tabla.Next; //Sitúa el cursor de la Tabla en la posición Posterior.
Tabla.Last; //Sitúa el cursor de la Tabla en la última posición.
Tabla.bInsert; //Sitúa la tabla en Inserción.
Tabla.Delete; //Elimina el registro actual.
Tabla.Edit; //Sitúa la tabla en Edición.
Tabla.Post; //Ejecuta finalmente la operación pendiente.
Tabla.Cancel; //Cancela una operación pendiente.
Tabla.Refresh; //Refresca la tabla, sincroniza la tabla con los controles.

De esta forma podría sustituirse el objeto TDBNavigator por varios botones (TButton), de modo que cada uno de ellos realice la operación deseada sobre la tabla.

No hay comentarios: