Social Icons

Herencia visual

Recibe un cordial saludo.

Un tema al cual se enfrenta un programador Free Lance en su ámbito laboral, día a día, es desarrollar una aplicación de la forma más ágil o rápida posible, teniendo en cuenta que la aplicación debe cumplir varios criterios en su desarrollo, como lo son: Portabilidad, mantenibilidad, eficiencia, usabilidad, fiabilidad y funcionalidad. Para lograr que un desarrollo cumpla con los criterios descritos, contamos con la programación orientada a objetos, mejor conocida como la POO o en ingles OOP, la cual nos permite manejar la herencia (Inherited), ya sea simple o múltiple. Se recomienda, si no tiene conocimiento sobre el tema de la POO, estudiar sobre el mismo, ya que no me centraré en dicha explicación.
FPC y su IDE LZ no es ajeno a este tipo de programación, por lo cual en este artículo veremos la forma de trabajar con una forma o formulario padre, del cual iremos heredando los demás formularios de nuestro proyecto.


Nota: Para realizar correctamente este ejemplo debe haber leído el artículo de conexión a MySQL, ya que en base a ese ejemplo desarrollaremos este y los futuros. Al finalizar encontrará las fuentes del ejemplo. También cabe anotar que hay algunos pasos omitidos, los cuales usted como lector debe investigar.


Antes de continuar debemos analizar qué tipo de aplicación desarrollaremos y que tipo de objetos o componentes necesitamos en nuestros formularios (objetos concurrentes) cada vez que los creemos, para no estar agregándolos por cada forma.
En este ejemplo necesitamos que nuestro form al crearse tenga los siguientes objetos.
  1. Boton de salida (TBitBtn paleta additional).
  2. Un DataSource. (Paleta Data Acces)
  3. Un TSQLQuery (Paleta SQLdb) 
  4. Un TDBNavigator. (Paleta Data controls)
Teniendo ya nuestros componentes u objetos descritos, procedemos a desarrollar nuestro ejemplo.


  1. Teniendo el IDE LZ abierto, nos vamos al menú archivo nuevo formulario y creamos nuestro form. Ver imagen. Este formulario que hemos creado es el que usaremos como form padre, del cual heredaremos los demás formularios de nuestro proyecto, ahora le configuramos la propiedades Caption := FrmBase y Name := FrmBase en el inspector de propiedades de LZ, luego agregamos nuestros objetos al form. Ver imagen. 
          


  • Ahora procedemos a guardar nuestro formulario base, nos vamos al menú archivo guardar o usamos la combinación de teclas Ctrl+s, habiendo hecho esto se nos abre el cuadro de dialogo donde colocamos el nombre a la unidad de nuestro form, en este ejemplo le colocamos uFrmBase, elegimos la ubicación del directorio donde guardamos nuestros form y le damos guardar. Ver imagen

  • Habiendo  guardado nuestro formulario, procedemos a configurar la propiedades de nuestros objetos.
  • Al DataSource1. La propiedad DataSet la apuntamos al SQLQuery1.
  • Al SQLQuery1. La propiedad Database la apuntamos a nuestro Dataconexión, y automáticamente la propiedad Transaction se nos configura.
  • Al DBNavigator1. La propiedad DataSource la apuntamos a nuestro DataSource1, y a la propiedad Anchors los siguientes valores : [akRight,akBottom].
  • Al BitBtn1. La propiedad Caption le colocamos 'Salir', la propiedad  Anchors los siguientes valores : [akRight,akBottom], la propiedad AutoSize el valor True, luego en el inspector de objetos, en la paleta eventos, buscamos el evento OnClick y hacemos Click sobre el botoncito que aparece a la derecha y nos muestra la ventana de edición de código donde escribiremos los siguiente.
          Close; //Cerramos la ventana. Ver imagen.
¡
    
  •  Hasta este punto hemos terminado nuestro form base o padre, ahora surge una prengunta, ¿Como hago para heredar de este form los que cree de aquí en adelante?. Bueno esto lo veremos en el siguiente y último capítulo de nuestro artículo.

  • Para que los formularios creados de aquí en adelante hereden (Inherited) o sean basados del form padre que hemos creado, debemos hacer los siguiente.

  • Ir al menú archivo y elegimos nuevo.
     
  • Se nos muestra la siguiente ventana.
     
  • En esta ventana no ubicamos en la sección elemento heredado (Componente de proyecto heredado), y en la parte derecha elegimos nuestro form base (FrmBase) y pulsamos aceptar. Ver imagen.









  • Luego de haber dado aceptar se nos crea nuestro form con todos los objetos de nuestro form base o padre. Ver imagen.

  • Como podemos ver, este método de herencia que nos brinda LZ, es muy pero muy importante, ya que nos permite ahorrar tiempo en nuestros desarrollos, además para cambios futuros, solo basta con modificar nuestra clase padre y luego el resto hereda los cambios.

Espero sugerencias, comentarios al respecto.

Saludos.

La paz de Cristo Jesús.

Fuentes

9 comentarios:

  1. Excelente, Gracias Lewis, me gustaria ver los ejemplo, pero no puedo bajar el fuente, ya lo retirastes? Saludes

    ResponderEliminar
    Respuestas
    1. Hola Douglas, alli están al final, no los he eliminado.

      Eliminar
    2. Acá dejo el link desde GoogleDriver.
      https://drive.google.com/file/d/0B9Sc0eusjEfmc2M1ZmxhUWd1Rlk/edit?usp=sharing

      Eliminar
  2. Hola Mtro. Lewis, excelente ejemplo.

    Para manejar clases en los botones y cuadros de texto, como se haría.
    o es similar a esto, si tuvieras un ejemplo.

    Gracias.

    ResponderEliminar
    Respuestas
    1. Gracias he aprendido y he hecho mis componentes.
      saludos y bendiciones.
      Excelente Blog.

      Eliminar
  3. Hola Oscar, para ese efecto hay que crear un componente que herede de alguna de las clases de Lazarus.
    Voy a tratar de hacer un ejemplo, y lo estaré publicando.

    ResponderEliminar
  4. Hola, con este mismo ejemplo, como seria si tengo que modificar la tabla en el heredado? es decir, quiero heredar el formulario padre, pero necesito modificar algunos datos en el hijo?

    ResponderEliminar
    Respuestas
    1. Hola amigo, te paso un link de un ejemplo de un CRUD, con herencia, está en mariaDB.

      https://drive.google.com/open?id=1zxPq2Zjmu2HUL2AB2-lBYUUXsCZxBrOC

      Eliminar

 

Visitas


contador de visitas para blogger
 
Blogger Templates