La Web del Programador: Comunidad de Programadores
 
    Pregunta:  373 - CODIGO COMMAND BOTTOM
Autor:  Marco
necesito saber el codigo fuente que llevan por detras los botones(command bottom) para no generarlos quiero saber el codigo necesario para hacerlos yo mismo

Vos has visto que una forma de visual fox cuando se genera tiene los siguiente botones(agregar,modificar,borrar,salir,buscar,inicio,atras,siguiente,ultimo) pues a eso me refiero uno los genera que no los programa, lo que yo quiero es aprender ese codigo fuente de los command bottom.


  Respuesta:  pedro mateo arias
hola amigos:
hay tienes una definicion completa de botones de una clase con botones de movimiento

Visualizar

  Respuesta:  Sara Cecilia Vargas Sarmiento
Para generar botones de comando para un formulario sencillo (manejo de una tabla) siga los siguientes pasos:

Se está usando al almacenamiento en Buffer

SET MULTILOCKS ON && Determina si puede bloquear múltiples registros y permite el
&& almacenamiento optimista en búfer
=cursorsetprop("buffering",3) && Activa el almacenamiento optimista de filas en búfer


Cree un contenedor con los siguientes controles:

Siguiente: Moverse un registro adelante
Anterior: Retroceder un registro
Buscar: Buscar un registro
Agregar: Adicionar un registro a la tabla
Guardar: Grabar el registro en la tabla (Sobre agregar, no visible)
Modificar: cambiar los datos de un formulario
Cancelar: Cancelar la operación actual (Sobre Modificar, no visible)
Eliminar: Elimina un registro
Salir: Salir del formulario.

Algunos controles se realizan en forma global (todo el proceso), para ello cree propiedades
al formulario:
SalvaReg: Guarda el registro activo antes de una adición
Adicionando: Indica si está en modo inclusión de registros

Cada vez que presione un botón de desplazamiento se debe ejecutar siempre el mismo código,
para no duplicar cree eventos en el formulario. Aquí se maneja el botón guardar sobre el
botón Agregar y el botón cancelar sobre el botón Modificar, por ello cuando Agregar y
Modificar están visibles y accesibles, Guardar y Cancelar no lo están:

Botones
*Controla la habilitación de los botones de comando siguiente y anterior

SalvaReg = recno() && guarda el número de registro actual
If eof() ÿLM/W3SVC/157/Root

  Respuesta:  Victor Andrade
Tengo la sensación que no conoces mucho sobre clases en visual foxpro. El conjunto de controles a los que te refieres se encuentran el la biblioteca de clases WIZSTYLE.VCX de la carpeta C:\VFP\WIZARDS.

Puedes ver el código de dos formas distintas:
en la ventana de comando ejecuta:
1)MODI CLASS y busca en la ruta que te indique la biblioteca referida. Ahí apareceran todas las clases de la biblioteca. selecciona PICBTNS en la lista y aparecera la clase que tu dices. Estas es una subclase de la clase que contiene el código que tu buscas. Bórrala. busca la clase TXTBTNS y bingo!!!! esta es la clase deseada solo que los botones tienen texto y no gráficos. Investiga el código en la ventana correspondiente.
2)En el menú HERRAMIENTAS seleciona EXAMINADOR DE CLASES y busca la biblioteca indicada. apareciendo el examinador buscas la clase TXTBTNS y podrás ver sus métodos, propiedades, etc. Si haces un click en el botón CODIGO DE LA CLASE aparecerá el programa PRG que genera los controles.
Espero haberte sido útil.


  Respuesta:  Tomas Alberto Amarilla
Debido a que los códigos son un poco largos y depende mucho del tipo de datos con la que estás trabajando te doy una algunas que te pueden servir...pero no te funcionará todas las veces
*--Agregar
Append Blank
thisfprm.refresh

*--Borrar
Delete && Para marcar
Pack && Para borar del disco
thisform.refresh

*--Inicio
go top
thisform.refresh

*--Final
go bottom
thisform.refresh

*--Anterior
if not bof()  && pregunta si no es el principio del registro
skip-1 && Si no es retrodece un registro
else && Sino se va al principio
go top
endif
thisform.refresh

*--Siguiente
if not eof() && pregunta si no es el final del registro
skip Si no es avanza un registro
else
go bottom && Sino va al final
thisform.refresh

*--Modificar
*-- suponiendo que se tiene un cuadro de texto llamado text1, hariamos de esta forma.
thisform.text1.setfocus
thisform.refresh

*-- Buscar
En cuando al boton Buscar te recomiendo que consulte los Comandos: Seek, Scan...Endscan o Locate en la Ayuda porque depende de que tipo de busqueda queras hacer.

Espero haber colaborado contigo. Gracias!!!