Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Crear Una Clase Formulario Personalizada
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Crear Una Clase Formulario Personalizada 
 
Compañeros del foro, me decidí a escribir este post porque he recorrido todo el foro de componentes, he buscado con google y no he hallado lo que busco.  Que es?.  Anteriormente cuando programaba en VFP yo tenia una clase form (miformulario) personalizada la cual yo había establecido como predeterminada, es decir, cuando yo agregaba un formulario nuevo, el sistema utilizaba mi clase formulario personalizado y no el la clase original (form1).  Dicha clase formulario poseía propiedades y métodos.  Entre los métodos que poseía el formulario estaban nuevo(), modificar(), eliminar(), buscar(), primgistro(), sigregistro(), antregistro(), ultregistro() (estos métodos permitían el manejo de datos de una tabla).  Los métodos debían estar programados en el formulario debido a que ellos eran activados por un toolbar que se ubicaba en el _SCREEN (recuerden que VFP por defecto trabaja en modo MDI y todos los forms aparecen dentro del _SCREEN).  Mi pregunta es.... cual es, donde se ubica y como modifico la plantilla que gambas utiliza cuando se crea un nuevo formulario?.  Esto con el fin de agregar algunos métodos comunes a todos mis formularios y no estar programándolos, o en el peor de los casos, haciendo copiar y pegar. O si existe una mejor manera de hacer esto que yo deseo, estaría agradecido de saberlo. Espero haberme explicado bien.

Gracias por sus comentarios.

El Patuleko
 



 
el_patuleko - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Una Clase Formulario Personalizada 
 
En gambas deberías crear un proyecto (de componente si usas gambas 2.2x) que contenga una clase que encapsule los comportamientos que necesites.

Sin embargo, deberías tener en consideración que el acoplamiento entre operaciones como las que mencionas: nuevo(), modificar(), eliminar(), buscar(), primgistro(), sigregistro(), antregistro(), ultregistro(), y un formulario es algo muy poco recomendable. Deberías plantearte crear una o más clases que encapsulen esos comportamientos y otra clase para la presentación gráfica (ésta última será, por supuesto, un formulario).

Saludos.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Una Clase Formulario Personalizada 
 
Citar:
En gambas deberías crear un proyecto (de componente si usas gambas 2.2x) que contenga una clase que encapsule los comportamientos que necesites.


Bueno, eso se me olvidó decirlo, uso gambas 2.21 sobre Ubuntu 10.10.  En la versión 2.21 de gambas se puede crear un proyecto de componentes?.
 
Citar:
Sin embargo, deberías tener en consideración que el acoplamiento entre operaciones como las que mencionas: nuevo(), modificar(), eliminar(), buscar(), primgistro(), sigregistro(), antregistro(), ultregistro(), y un formulario es algo muy poco recomendable.


Como les mencioné, tengo un toolbar, en donde, por ejemplo, el evento clic del botón siguiente dice asi:

'boton siguiente registro del toolbar

_SCREEN.activeform.siguiente()
 


Esto ejecuta el método clic del método siguiente del formulario activo en ese momento en el SCREEN.  El metodo siguiente del formulario posee las líneas de codigo y las referencias a las tablas específicas de ese formulario.  Basicamente, lo único diferente en cada formulario es el nombre de la tabla.

Si no fuera asi, me tocaria programar en el toolbar algo como esto:

'boton siguiente registro del toolbar
case _SCREEN.activeform.name = "frmclientes"
    select clientes   'esto selecciona la tabla clientes
    skip                 'Avanza el puntero del registro al siguiente
case ....

end case
 


Se que este codigo (De VisualFoxpro) es un poco anticuado, pero me sirve para ilustrar lo que deseo (en realidad me tocaria ver el id del cliente en el formulario y hacer un select que me traiga los datos del cliente que tenga el siguiente id).  En el ejemplo de codigo anterior me tocaria programar todo en el toolbar, lo que me parece, en mi concepto, muy poco profesional. Mi concepto es que el toolbar deberia ser lo mas genérico posible.

Claro está, no me cierro a nuevas formas de programar, si alguien me indicara donde encontrar un ejemplo de gambas donde se use un toolbar sería maravilloso.

Espero haberme hecho entender.  Mil gracias.


Atte: El Patuleko
 



 
el_patuleko - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Una Clase Formulario Personalizada 
 
Citar:

Bueno, eso se me olvidó decirlo, uso gambas 2.21 sobre Ubuntu 10.10. En la versión 2.21 de gambas se puede crear un proyecto de componentes?.

Sí, sólo tienes que elegir la opción correspondiente al crear un proyecto.
Luego, una vez que este terminado, deberás crear un ejecutable "Proyecto > Crear > Ejecutable" y marcar la opción "Guardar ejecutable en el directorio del usuario". Así, tu proyecto aparecerá en la lista de componentes del IDE, de modo que podrás seleccionarlo para integrarlo a nuevos proyectos y utilizar las clases que provea.

Respecto del código y la forma de programar en VisualFox te diría que te olvides de eso tan rápido como puedas. No podrás usar muchos de esos conocimientos en otros lenguajes porque VF es una herramienta que tiene muchas "particularidades" que se alejan de lo convencional por mantener muchas características heredadas del anticuado XBase.

Aprende sobre programación orientada a objetos y luego aplica esos conocimientos a tus programas. El punto no es que aprendas a usar un control ToolBar, sino que profundices tus conocimientos sobre programación: algo que obviamente es necesario, pero que casi todos pretenden pasar por alto, como si se pudiera programar sin antes aprender a hacerlo.

En la sección de descargas está disponible el libro "Programación visual con software libre" de Daniel Campos y José Luis Redrejo. Léelo, es un buen punto de comienzo, en particular deberías leer los capítulos 1, 2, 3, 5 y 8 como para empezar.

Saludos.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
última edición por fabianfv el Martes, 16 Noviembre 2010, 16:40; editado 1 vez 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Una Clase Formulario Personalizada 
 
Citar:
En la versión 2.21 de gambas se puede crear un proyecto de componentes?.


Hice este manual para explicar como se hacen controles en gambas

http://jsbsan.wordpress.com/2010/11...ersion-2-rev-0/

Mas manuales que te pueden servir para aprender a hacer programas:
http://jsbsan.wordpress.com/2010/10...o-a-gambas2-21/ (para empezar)


http://jsbsan.wordpress.com/2010/09...as2-listin-2-2/ (gestion de una agenda telefonica+fotos, con archivos planos de texto)


http://jsbsan.wordpress.com/2010/11...izada-con-sql3/ (base de datos sqlite)

Espero que te sean util

Citar:
un ejemplo de gambas donde se use un toolbar

¿a que te refieres con un toolbar? ¿una barra de botones/iconos que cada uno haga algo?
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Una Clase Formulario Personalizada 
 
Agradezco a todos las respuestas hasta ahora, pero no creo que en gambas no sea posible agregar nuevas propiedades y métodos al formulario plantilla por defecto del entorno (Fmain y los otros que se agreguen al proyecto), que eso es a la final lo que yo busco.  En el capitulo 8 del libro "Programación Visual con Software Libre" cito:

Citar:
En otras palabras, sólo hay un nivel de herencia y en nuestros ejemplos anteriores
no podriamos crear una clase ClsCalculo4 que proviniera de ClsCalculo2 o ClsCalculo3,
puesto que estas están empleando ya la palabra clave lNHERlTS para indicar que
heredan las propiedades de ClsCalculo.
Esto implica, por ejemplo, que no podemos crear clases que sean herederas de Form,
pues la clase Form proviene de Window.


Pero les recuerdo que este libro está basado en la versión de 2005 que si no me equivoco era la 1.x.

Gracias mil


Atte: El Patuleko
 



 
el_patuleko - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Una Clase Formulario Personalizada 
 
Citar:

pero no creo que en gambas no sea posible agregar nuevas propiedades y métodos al formulario plantilla por defecto del entorno (Fmain y los otros que se agreguen al proyecto), que eso es a la final lo que yo busco

Sí que es posible extender la clase Form. Pero te repito al añadirle métodos como los que describes estarías acoplando la presentación con el acceso a datos.

PD: aún no sé muy bien cómo responder a tus preguntas porque todavía no tengo una idea de cuáles son tus conocimientos. No dudes en preguntar nuevamente si algo que decimos no se entiende.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Una Clase Formulario Personalizada 
 
Creo que el error es de concepto: Los métodos de desplazamiento y manipulación de la fuente de datos no son algo relativo a un formulario. Un formulario es exclusivamente, una forma de presentar cosas y de interactuar con el usuario, no una clase manipuladora de datos. Para eso existen otros controles y otras clases.

Extender una clase para que haga algo que no es cosa suya... es meterse en camisa de 11 varas, como se dice en mi pueblo.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Una Clase Formulario Personalizada 
 
Citar:
¿a que te refieres con un toolbar? ¿una barra de botones/iconos que cada uno haga algo?


jsbsam esto es un toolbar (lo que está dentro del recuadro rojo)

 toolbar


Atte:  El Patuleko
 



 
el_patuleko - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Una Clase Formulario Personalizada 
 
Citar:
Creo que el error es de concepto: Los métodos de desplazamiento y manipulación de la fuente de datos no son algo relativo a un formulario. Un formulario es exclusivamente, una forma de presentar cosas y de interactuar con el usuario, no una clase manipuladora de datos. Para eso existen otros controles y otras clases.


Creo que no han comprendido lo que deseo, no solo la manipulación de datos.  Yo quiero, por ejemplo, agregar una propiedad al formulario que me sirva para guardar el nombre de la tabla maestra asociada al mismo, esto con el fin de crear rutinas genéricas, para el manejo de datos.

Ejemplo (no se si esto funcione, no manejo bien el gambas).

'Rutina para buscar un dato
dim lcTabla as String
dim lcQuery as String

lcTabla = Me.cTablaPrincipal    'Propiedad del formulario que guarda el nombre de la tabla maestra
lcQuery = "Select * from " & lcTabla
miControldeDatos.query = lcQuery
 

Reconozco que le falta la cláusula Where (la cual estaria almacenada en otra propiedad del formulario). Observen que esta busqueda funcionaria sin ningún tipo de cambio en todo formulario que se incluyera si dependiera de la clase form. Eso creo que es a lo que se refiere la parte de reutilización de la orientación a objetos.

Citar:
PD: aún no sé muy bien cómo responder a tus preguntas porque todavía no tengo una idea de cuáles son tus conocimientos. No dudes en preguntar nuevamente si algo que decimos no se entiende.


Con Respecto a mi nivel de conocimientos sin duda con respecto a gambas Novicio (Tengo como 10 dias de estar aprendiéndolo, lo único que he hecho es una calculadora de números enteros).  Pero con respecto a VisualFoxpro un poco Avanzado.  Es por esto, que deseo saber como se realizan ciertas cosas como personalizar el formulario predeterminado de gambas o hacer que gambas use mi formulario personalizado.

Atte:  El Patuleko
 



 
el_patuleko - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
10.00 10 10 1
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario