25 octubre 2007

Heredando la pura guapura…

Algo que me da mucha flojera al programar con Visual Basic 6 o 2005 es el tener que dibujar interfaces de las ventanas (o formularios o formas, como dicen algunos porque por defáult se llaman Form1, Form2, etc.). Es muy importante tardar un rato diseñando el interfaz porque de eso depende que el usuario pueda y quiera usar tu programa, si le es de utilidad y, si es tu caso, si te lo compra. Es importante que no solo sea bello, sino funcional (hace tiempo escribí un artículo sobre las interfaces gráficas, o GUIs, que puedes ver aquí).

Lo peor de este rollo es cuando tienes que dibujar otra ventana que es muy similar a otra. O una de dos: o creas otra ventana y la dibujas de nuevo, o copias el archivo de la ventana (en VBasic 6 tiene la extensión .frm) y lo pegas con otro nombre e importas este nuevo archivo a tu proyecto. Cualquiera de las dos alternativas no es muy natural que digamos y, si estoy usando un lenguaje quesque orientado a objetos (digo quesque porque el único lenguaje de programación que conozco que totalmente orientado a objetos es el SmallTalk), debería poder aprovechar la herencia para evitar andar repitiendo cosas. Si no, ¿para qué me sirve la OOP (programación orientada a objetos)?

¡Buenas noticias! La gente de Microsoft ha escuchado las plegarias de muchos programadores y han agregado una manera “natural” de crear formas similares: la herencia visual. En este artículo, voy a explicar como es que se heredan las ventanas.

Para explicar esto, voy a hacer un programa muy sencillo: una ventana con una etiqueta, una caja de texto y dos botones. Luego, voy a agregar una ventana (o formulario) heredado para que se vea como heredo la interfaz.

Para iniciar, creo un nuevo proyecto y diseño mi Form1 de esta manera:


Voy a agregar código al botón Salir (Button2) que haga que el programa se excite (o sea, haga un Exit): le incluyo la instrucción End. Para poder heredar esta forma, es necesario generar el proyecto (si no se compila Form1, no se puede heredar). Para hacerlo fácil, me voy al menú Generar y escojo la opción Generar HerenciaVisual:


Ahora sí, vamos “tirando rostro”. Para heredar Form1, me voy al menú Proyecto (también puedo hacer clic derecho sobre el nombre de la solución, en este caso HerenciaVisual, y salen las mismas opciones) y selecciono la opción Agregar Clase… como se ve en la siguiente figura:


Al hacer esto, aparece la siguiente ventana, donde vamos a seleccionar la opción Formulario heredado:


Después de esto, te aparece una ventana como esta:


En dado caso que no te aparezca así, vuelve a generar el proyecto. Ahora selecciono la opción Aceptar para decirle que herede la ventana Form1 (en mi caso, la única que existe). En este momento, mi explorador de soluciones me aparece Form2, como se ve aquí:


Y Form2 se ve así:


Fíjate que los controles de Form2 tienen un signo chiroliro en su esquina superior izquierda, como dos cajitas con una flechita. Eso indica que el control está heredado.

Para terminar, fíjate que al seleccionar uno de los controles, te aparece un candado que indica que no lo puedes eliminar. En Form2, seleccioné el primer botón, Button1, y el “candadito” se ve así:


Tampoco se puede agregar código a los controles. Si le das doble clic al control, no se abre la ventana de código ni nada. Abrí el código desde el botoncito de código que está en la ventana de soluciones. Si te fijas, no me aparecen los controles heredados:


En conclusión, puedes heredar controles pero no su código. Esto te ahorra mucha lata. Se puede hacer una ventana “base” y heredar las partes comunes a muchas ventanas y en cada una agregarle “el saborcito” individual. Espero que esto les ahorre lata y trabajo extra. Si quieres agregar algo acerca de tus propias experiencias con la heredada de “guapuras”, de sus interfaces gráficos chiroliros, deja un comentario. ¡Hasta la próxima!

6 comentarios:

Anónimo dijo...

Pues.. eso del heredamiento se ve que esta facil de reailzar ademas de que le hace la vida menos complicada a la gente. Me parece importante que agreges estos temas al blog que aunque son cortos y nada complicados nos facilitan entender el tema paso por paso.... (es una nueva manera de realizar el copi paste jaja)...

Anónimo dijo...

estoy de acuerdo con el franc, esto nos ayuda a no estar escribiendo tanto en el codigo y heredar las propiedades.

es cierto es bueno que subas este tipo de info por que nos hace el paro para cuando programamos, para ahorrarnos trabajo y ahorratre trabajo ati.

Anónimo dijo...

joel morales gutierrez 5tpo

lo que nos dice tony de heredar formas pienso que es mucho mas sencillo para nocotros por que nos ebitamos tanto codigo ijo de la ver.....asi se facilita por si tenemos alguna duda el blog ya nos hace una buena ayuda

Anónimo dijo...

Rene Miguel Garcia Mendoza 5tpo

Es una buena forma para que los alumnos vean sus dudads y den sus comentarios y si tony aparte de los temas de clase como el de herencia pues ya estando aqui le segui viendo ya que abia varias cosas interesantes como lo del wi-fi

Anónimo dijo...

Pues... eso de heredar se ve y está muy fácil, lo malo es q le intenté en mi compu y no me aparece ninguna de las ventanas -_-" ni las opciones, yo creeo q puede q tenga instalado una versión limitada -_-", pero de todos modos gracias TONY por gastar tu tiempo libre en explicar aquí los temas que hemos visto o veremos en clase, así podemos consultar para resolver alguna duda, y además c me hace muy chido tu forma de hacer amena la programación!!!

NETA MUCHAS GRACIAS!!

Anónimo dijo...

J. MEMO GLEZ GLEZ 5TPO:
jaja el anterior comentario fue mio xD

Pues... eso de heredar se ve y está muy fácil, lo malo es q le intenté en mi compu...........

ZAZ TONY MOLTO GRATZIE XD

El Tony y sus ondas...

Related Posts Plugin for WordPress, Blogger...