miércoles, 11 de septiembre de 2019

Como poner un formulario dentro de otro


Aún no he hecho ningún programa que tenga esta función pero es necesario aprender a hacerlo en principio, pues tiene que ver con el manejo de interfaces y como diseñar interfaces inteligentemente o cual es la mejor forma de visualizar la información para nuestro programa.

Les dejo aquí mi primera prueba sobre esta función que nos permite gambas, que trata de incrustar un formulario dentro de otro, un ejemplo profesional lo tenemos en la ide de gambas mismo con la ventana consola.


' gambas class file

Public Sub Form_Open()

CargarEnContenedor()

End

Public Sub Form_Show()

Me.x = 0
Me.y = 0

End

Public Sub btnSalir_Click()

If Not ventana.Parent Then
ColocarEnContenedor()
Else
SacarDeContenedor()
Endif

End

Public Sub ColocarEnContenedor()

'asignamos un nuevo contenedor a ventana
ventana.Reparent(PanContenedor, 0, 0)
ventana.Center 'centramos ventana

End

Public Sub SacarDeContenedor()

'quitamos la ventana de su contenedor por medio de null
ventana.Reparent(Null, 0, 0)
ventana.Center 'centramos el formulario en la pantalla

End

Public Sub CargarEnContenedor()

'cargamos un formulario x en un contendor x
ventana.Load(PanContenedor)
ventana.Show

End


Public Sub btnCargar_Click()

CargarEnContenedor()

End


Formulario secundario


' gambas class file

Public Sub btnSalir_Click()

  If Not ventana.Parent Then Return
  FMain.SacarDeContenedor

End

Public Sub btnEntrar_Click()

  FMain.ColocarEnContenedor

End



 El proyecto esta en la Granja de gambas.

lunes, 2 de julio de 2018

Crear un espacio en un Menu (truco by amigo)




Nunca necesitaste un espacio en el editor de Menú para colocar entre items?

En mi caso surgió de la necesidad de que en una opción del menú no fuera clicleado por accidente, por estar una opción pegado a la otra,  pero en el editor de Menú no hay opción para eso.

Pues bien un amigo que de vez en cuando le gusta codear algo de gambas se le ocurrió una idea para solventar la falta de una opción para dejar un ítem vacío
 (no hablo de un separador)

Se logra haciendo un ítem común, cuando arranca el programa en el evento open cambiamos la propiedad caption por el carácter Chr(10) y guala!!, el espacio se visualiza.



domingo, 17 de junio de 2018

Catch (gestión de errores)

Esta instrucción indica el comienzo del código de gestión de errores de una función o procedimiento.
Cada zona "catch" se ejecuta cuando ha ocurrido un error entre el principio de la función y su final. El error puede ser disparado por la misma función, o por otra función que haya sido llamada durante su ejecución, siempre que la función llamada no tenga su propia zona "catch": cuanto más cercana al error es la zona "catch", más prioridad tiene.
Si un error se dispara durante la ejecución de la zona "catch", se propaga normalmente. ¡Esta zona no cubre sus propios errores!
Si existe una zona "finally" en la función, debe preceder a la zona "catch". Véase FINALLY para más detalles.

CATCH

SUB Function ( ... )
  ...
CATCH
  ...
END


En la imagen tenemos un código super simple sobre Catch.
Con Kill que es un comando para eliminar archivos o carpetas,
provocamos un error a propósito a fin de ver como funciona Catch.
Como observamos el archivo que se indica entre comillas no existe por tanto
dará un error que hará que todas las lineas después del Catch se ejecuten.
Si pusiéramos una carpeta o ruta de archivo existente el error no se producirá no ejecutándose ninguna linea de código después del Catch.

Algo muy importante de Catch, sino esta hará que nuestro programa se cuelgue haciéndole perder tiempo y trabajo al usuario que usa nuestra aplicación.

En cambio estando Catch aún sin lineas de código después de el nuestra aplicación no se colgará un detalle de importancia que no viene explicado en las informaciones sobre Catch.

Por ejemplo en el programa VisorRV1960 últimamente estoy usando este tipo de código en rutinas nuevas que no se bien como funcionarán y me cubro con Catch para no molestar y fastidiar al usuario del programa si hubiera un error (que provocará que el programa se cierre y que el usuario pierda su trabajo actual)



1- Es una linea que guarda en un archivo de texto la información del error.
2- Es un línea que lanza una ventana e informa al usuario del error.
El usuario podría reproducir el error y hacer una captura de pantalla e informar del error al programador para su posterior corrección.

Bueno espero que les sirva para sus proyectos y experiencias de iniciación en gambas. Saludos y comenten.

Enlaces a páginas, blog etc sobre Gambas



Aquí iré agregando enlaces o link de páginas web, blogs etc.
si tienes enlaces conocidos o no, que no estén en este post publicado en un comentario y lo iremos agregando.

En español:

Página principal de Gambas
http://gambas.sourceforge.net/es/main.html


https://www.gambas-es.org/index.php


https://cursogambas.blogspot.com/

Pablo Mileti, algunos tutoriales en pdf
http://www.mileti.com.ar/apuntes.html


https://www.lawebdelprogramador.com/cursos/Gambas/index1.html

Página de retos de programación
http://www.solveet.com/gambas-solutions

https://gambeando.wordpress.com/



En otros idiomas:

Página principal de Gambas en ingles esta toda la información más actual. También esta en otros idiomas completos o no según el trabajo de los traductores.

http://gambas.sourceforge.net/en/main.html

Gambas Mailing List
http://lists.gambas-basic.org/listinfo/user

https://gitlab.com/gambas/gambas


playground
http://gambas.one/playground/examples.html


piga.tropicalwikis.com/wiki/Gambas_Examples


Foro italiano
http://www.gambas-it.org/smf/index.php

Foro alemán
https://www.gambas-buch.de/dw/doku.php?id=start

Foro francés
http://www.gambaslinux.fr/

Código fuente de muchos proyectos
http://www.gambasforge.org/forge.html

Indonesia
http://gambaspi.blogspot.com/



Canales en Youtube:

Julio Sanchez
https://www.youtube.com/channel/UCgImvNl0hUyu8th9r1tpIyg

Fabian Bodard
https://www.youtube.com/channel/UCBt0sxV72FucwvJ6UuswonA

Fabricio Gomero (postapase)
https://www.youtube.com/channel/UCdMJwmAuoB9ecUr0P5l1CsA

Gambas-es
https://www.youtube.com/channel/UCDW7HIv_6xXHuuIYsJwiROw



Si conoces algún link importante sobre gambas que aquí falte mencionalo en un comentario y lo agrego, gracias.