Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta gambas3. Mostrar todas las entradas
Mostrando entradas con la etiqueta gambas3. Mostrar todas las entradas

lunes, 20 de junio de 2022

Creador de Orlas: Descargar la Ultima versión 2022


 Creador de Orlas: Descargar la Ultima versión 2022



En el siguiente video os explico como descargar la última versión desde github y usar el programa Creador de Orlas,



Url de github:

https://github.com/jsbsan/creadordeorlas


Url del blog del creador de orlas:

https://creadordeorlas.blogspot.com/



domingo, 8 de agosto de 2021

Gambas3: Recursos en la red


 Gambas3: 

Recursos en la red

Os dejo unos cuantos enlaces donde encontrareis recursos sobre gambas3:

Curso Online Completo y Gratuito:

https://cursogambas.blogspot.com/p/indice.html


Foros

En español

https://gambas-es.org/

Antigüo foro gambas-es-org: https://foro.gambas-es.org/


Información sobre el lenguaje:

 http://gambaswiki.org/wiki

 https://lists.gambas-basic.org/pipermail/user/

 https://de.wikibooks.org/wiki/Gambas

Otros foros:

 - http://www.gambas-club.de/index.php
 - https://forum.gambas.one/
 - http://www.gambaslinux.fr/
 - http://89.234.156.109/
 - https://gambas-buch.de/dwen/doku.php
 - https://www.gambas-it.org/smf/
 - http://www.gambas-it.org/wiki/index.php?...principale

Páginas web:

http://sologambas.blogspot.com/p/indice.html

https://pigalore.miraheze.org/wiki/Main_Page

http://icculus.org/piga/

http://novatocodegambas.blogspot.com/

http://sologambas.blogspot.com/p/indice.html

https://pigalore.miraheze.org/wiki/Main_Page

http://icculus.org/piga/

http://novatocodegambas.blogspot.com/

http://gambas-basico.blogspot.com/



Libros:

https://www.lulu.com/es/es/shop/julio-sanchez-berro/curso-de-gambas3/ebook/product-1dm4g6ke.html?page=1&pageSize=4

http://gambaswiki.org/wiki/doc/book?nh&l=en

https://en.wikibooks.org/wiki/Programming_Gambas_from_Zip

https://wordpress.gambas.one/a-book-by-gerry-buzolic/



Anuncios sobre versiones de gamba3:

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


Código fuente de gambas3:

https://gitlab.com/gambas/gambas



Fuente:

https://gambas-es.org/showthread.php?tid=262

domingo, 27 de junio de 2021

Gambas3: Error No se puede satisfacer la dependencia: gambas3-runtime (>=3.XX)

 Gambas3: Error No se puede satisfacer la dependencia: gambas3-runtime (>=3.XX)


Este error nos surge cuando estamos intentando instalar un programa hecho en gambas3 en versiones superiores que tenga la distribución en su repositorio.


Para resolver este error, hay que instalar la ultima versión de gambas3, mediante PPA:

En la terminal hay que escribir:

sudo add-apt-repository ppa:gambas-team/gambas3  
sudo apt-get update
sudo apt-get install gambas3


Fuente:

https://cursogambas.blogspot.com/2012/08/instalacion-desde-repositorios-del.html


jueves, 24 de junio de 2021

Gambas3: corregir error "... is incorrectly overridden in class.." o "..mal sobreescrita..."

  Gambas3: corregir error "... is incorrectly overridden in class.." o "..mal sobreescrita..."




Comentario sobre este ERROR:

Este error es debido a que en una clase hija que hereda de otra, ha vuelto a definir  una variable que ya estaba definida en la clase padre. En gambas3, si puedes redefinir el código de funciones y subrutinas, pero no las variables.


La solución  es comentar las lineas de las definiciones de variable en la clase padre, dejando las definiciones en la clase hija. Así queda anuladas esas definiciones en la clase padre. Esto es cómodo cuando tenemos muchas clases hijas.

Esto funciona bien, si la clase padre es un "esqueleto" vacío  de definiciones de métodos (funciones y subrutinas) y variables, sin poner código que use las variables.

Otra Solución:

También se puede hacer al revés, osea, dejar en la clase padre la definición de la variable  y en la clase hija ponerla como comentario .

Depende de como hayamos definido y sobre todo, usado esas  variables en la clase padre,  puede dar problemas. Si la usamos como "esqueleto" (solo definimos las funciones y subrutinas (métodos de la clase), vacías sin código), no dará problemas dejar comentadas las definiciones de variables, ya que no usamos las variables dentro del código.





lunes, 21 de junio de 2021

Mi repositorio en github: programas realizados en gambas3

 Mi repositorio en github:

 programas realizados en gambas3



Os dejo un videotutorial para explicaros como descargar el código fuente de unos de mis proyectos en gambas3 y ejecutarlo en vuestro ordenador desde:
- el IDE de gambas3 
- creando un ejecutable ,gambas3
- y también un paquete de instalación .deb







sábado, 22 de mayo de 2021

Gambas3: recorrer los controles de un formulario

 

Gambas3: recorrer los controles de un formulario

En este ejemplo, proporcionado por vuott, vemos como poder recorrer los controles de un formulario y cuando es el control es del tipo Label, pone su fondo de color amarillo.

  1.   
  2. For Each ob In Me.Controls
  3.   If Object.Type(ob) = "Label" Then ob.Background = Color.Yellow


Fuente:

https://gambas-es.org/showthread.php?tid=417


Nota:

Otra mejora del metodo anterior explicada por Tincho

https://gambas-es.org/showthread.php?tid=418

Si por ejemplo tenemos un panel con dos controles dentro para cada campo y queremos que al cambiar el valor de texto del TextBox se ponga en rojo la TextLabel que se encuentra en el mismo panel, no es necesario recorrero todos los controles del formulario sino que solo los del panel "Parent".

  1. Public Sub elGrupo_Change()
  2.  
  3.   Dim ob As Object
  4.  
  5.   For Each ob In Last.Parent.Children
  6.     If Object.Type(ob) = "Label" Then
  7.       ob.Foreground = Color.Red
  8.     Endif
  9.   Next
  10.  

lunes, 19 de octubre de 2020

Tutorial Gambas3: Menus dinámicos

 Tutorial Gambas3: Menus dinámicos


En el siguiente videotutorial, explico como se crean menus dinámicos (las distintas opciones del menu se crean cuando se abra el programa), el metodo explicado sirve para que sea automático añadir nuevas opciones sin añadir ninguna linea de codigo.


Enlace descarga del código:

https://drive.google.com/file/d/1bj01vdTYak9iMrNtPyOIpsvJcSlGv1zk/view?usp=sharing

martes, 15 de septiembre de 2020

Gambas3: combobox gráfico

 Gambas3: combobox gráfico

Pequeña utilidad para crear un combobox gráfico dinámico, ejemplo de como crear "al vuelo" controles.






Código fuente:

https://github.com/jsbsan/comboboxgrafico

sábado, 13 de junio de 2020

Gestor de Espacios de Trabajo: Mayordomo

Gestor de Espacios de Trabajo: Mayordomo


Este es un programa para gestionar vuestras espacios de trabajo.

Pero ¿que es un espacio de trabajo? Se trata de la información de aplicaciones abiertas en un determinado momento en tu escritorio (incluido su tamaño y situación en el escritorio) y los ficheros que estén abiertos en cada  aplicación.

Normalmente, estamos trabajando con varios proyectos a la vez y tenemos abiertas sus correspondientes ventanas (hojas de calculo, documentos, pdf, gestor de archivo en un determinado directorio,etc... ). Cuando pasamos de un proyecto a otro, hay que volver a abrir las ventanas ( documentos, gestor de archivo de su ruta, etc..) que le corresponden. Este programa os gestiona fácilmente estos espacios de trabajos.

Os dejo un video de explicación de uso:

Video Presentación:


Video Mejoras version 0.0.4:




domingo, 31 de mayo de 2020

Como crear tu propio lenguaje de programacion interpretado: mini-interpreteCAD


Como crear tu propio lenguaje de programación interpretado: mini-interpreteCAD 


¿como crear un lenguaje de programación?
Pues usando Gambas3 y el patron Command, he hecho este pequeño ejemplo de un programa para CAD. He creado una serie de reglas (comandos), tanto para dibujar, como para llevar el flujo del programa (orden tipicas Si,Repite,Mientras)

Ordenes disponibles [version 0.0.7]:





Lo mejor que tiene: es programa es fácilmente ampliable a nuevas ordenes, y con la potencia de la orden Eval() de gambas3, podemos crearla.

Video de ejemplo de uso:




Codigo fuente:

https://github.com/jsbsan/microinterprete





























sábado, 4 de mayo de 2019

Gambas3.13: nueva versión

Gambas3.13: nueva versión


Hoy he actualizado en mi linux mint, la nueva versión de gambas3 (la 3.13), os dejo las cambios y mejoras que trae (traducido desde google translate):

¿Qué hay de nuevo?
Esta versión corrige algunos errores molestos en Gambas 3.12, y agrega las siguientes características:

Soporte para la traducción automática en el IDE.


  • La compilación JIT ahora se realiza en segundo plano, acelerando el inicio del programa.

  • File.RealPath () para canonizar una ruta, eliminando todos sus enlaces simbólicos.

  • Array.SortUsing () para ordenar una matriz usando un orden definido por otra matriz.

  • Array.Shuffle () para mezclar aleatoriamente el contenido de una matriz.

  • TimeBox, un nuevo control para introducir duraciones.

  • Mejoras en el componente gb.map.

  • Mejoras en el componente gb.media


Recopilación e instalación
Lea las instrucciones  aqui

Si todo estaba bien, escriba "gambas3" para ejecutar el entorno de desarrollo.

Disfrútala !

Registro de cambios
CONFIGURACIÓN

  • No reinicie CFLAGS o CXXFLAGS para que uno pueda sobrescribirlos.

  • Ahora que el compilador genera automáticamente los archivos * .mo, no los coloque en el repositorio git.

  • Ponga gbh3 de nuevo en el repositorio git.

  • Añadir atribución de algoritmo borroso.

  • Deshazte de muchas advertencias gcc.


ENTORNO DE DESARROLLO
Editor de código

  • El color de fondo del error o la información sobre herramientas del reloj ahora se fusiona explícitamente con el color de fondo predeterminado del tema.


  • La fuente del método emergente (popup) se dimensiona de acuerdo con el número de métodos a mostrar.


Formato de código

  • La opción de formato al cargar y guardar ahora marca los archivos como modificados, de modo que la búsqueda no se vuelva tonta.

  • El editor de texto ahora tiene en cuenta la opción de formato al cargar y guardar, no solo el editor de código.

  • Ignora los archivos nulos ahora.


Editor de base de datos

  • Mostrar la duración de las solicitudes personalizadas es el editor de solicitudes.
  • El editor de solicitudes ahora envuelve su contenido.


Editor de formularios

  • El diálogo para editar la propiedad de texto ahora muestra el nombre de la propiedad del editor en su título.


Navegador de ayuda

  • Al abrir el navegador de ayuda desde el cuadro de diálogo de bienvenida, no se bloqueará más si el panel izquierdo está visible.



  • Fijar los contenidos del panel izquierdo.


Editor de imagen

  • No se bloquee cuando utilice la herramienta de borrado mientras presiona la tecla MAYÚS.


Diálogo de opciones
Soporte para la traducción automática basada en la herramienta translate-shell


  • Añadir nuevos fragmentos.



  • Mostrar fragmentos personalizados en negrita.



  • Corregir el espaciado de algunas opciones en la pestaña Proyecto.


Empacador

  • Ya no crea un componente con un nombre que tenga un punto inicial.



  • Arreglar la generación de paquetes slackware.


Diálogo de propiedades del proyecto

  • Use iconos personalizados para las casillas de verificación de la pestaña de componentes, ya que algunos estilos no pueden dibujarlos correctamente.



  • Agregue GB_NO_JIT como variable de entorno predefinida.



  1. La tabla de variables de entorno ahora cambia automáticamente el tamaño de sus columnas.


Diálogo de búsqueda

  • El resaltado de texto ahora funciona correctamente, sea cual sea la fuente del editor.

  • Hazlo más grande para las etiquetas largas de la casilla de verificación.


Editor de texto

  • Algunas correcciones en la compresión javascript.


Diálogo de traducción

  • Mueva los botones relacionados con la traducción actual a sus propias barras de herramientas juste sobre el campo de traducción.
  • Agrega dos botones para moverte entre las cadenas traducidas.
  • Soporte para la traducción automática basada en la herramienta translate-shell.
  • Eliminar una traducción correctamente lo elimina del cuadro combinado de traducción.


Diálogo de bienvenida

  • Utilice el nuevo icono en lugar del antiguo.


Diverso

  • Actualizar la traducción al italiano.
  • Actualizar la traducción al francés.
  • Actualizar la traducción al español.
  • Actualizar la traducción al holandés.
  • Actualización de soporte financiero.
  • No vuelva a llamar a msgfmt, esto lo hace automáticamente el compilador ahora.
  • Marque algunas cadenas en las formas para no ser traducidas.


EJEMPLOS
Corregir imagen dañada en el ejemplo BeastScroll.

WIKI

  • Actualizar la traducción al francés.
  • Soporte para archivos de video webm.
  • Soporte para juegos integrados.
  • El título de la página ahora comienza con la ruta de la página.
  • Actualizar la traducción al holandés.


FABRICANTE DE SITIO WEB

  • Actualizar la traducción al holandés.



INTERPRETE

  • InStr () y RInstr () vuelven a funcionar correctamente cuando se ignora el caso y la longitud del patrón es de al menos dos caracteres.


Agregue una API para saber si existe un componente nativo en el disco.

Arreglar la optimización del bucle que no funcionó en los bucles llamándose a sí mismos de forma recursiva.


  • Cuidar los componentes que modifican la variable ambiental. Usar gb.httpd ya no falla.



  • Crea el camino "./" equivalente a "." como antes, y no un prefijo para un componente con un nombre nulo.



  • Permitir un dígito decimal más en constantes numéricas de punto flotante.



  • Ignore los ceros finales en la parte decimal de las constantes numéricas de punto flotante. Puede introducir diferencias de redondeo.



  • No se bloquee si un componente usa NULL como argumento de mensaje de error. Reemplácelo por una cadena vacía.



  • Corregir cadena a rutina de conversión de punto flotante.



  • Asigne las variables de entorno de idioma personalizadas de forma estática, ya que las rutinas de salida de la biblioteca acceden al entorno una vez que se han liberado las asignaciones de memoria del intérprete.


Defina una nueva constante de límite, que es la longitud máxima de la variable System.Language. Es de 16 bytes.


  • File.RealPath () es un nuevo método estático que devuelve el nombre de ruta absoluta canonicalizado de la ruta especificada, sin enlaces simbólicos dentro.



  • String.Code () ahora devuelve -1 en una cadena UTF-8 incorrecta.



  • Array.SortUsing () es un nuevo método que ordena una matriz de acuerdo con el orden de clasificación definido por otra matriz.



  • String.Right () ya no falla en cadenas UTF-8 no válidas.



  • Agregue el método Sort () a las matrices de variantes.



  • La compilación JIT ahora se ejecuta en dos pasos.



  • Los monitores de descriptor de archivos activos y los temporizadores activos ahora se transfieren automáticamente al componente que declara un bucle de eventos personalizado. En consecuencia, un proceso iniciado antes de la declaración del bucle de evento tendrá su señal de terminación correctamente capturada.



  • Utilice waitpid () en lugar de wait4 ().



  • Array.Shuffle () es un nuevo método que baraja aleatoriamente una matriz utilizando el algoritmo de Fisher-Yates.



  • El compilador JIT ya no ejecuta inicializadores estáticos al cargar una clase. De lo contrario, el código de bytes puede modificarse antes de compilarse, lo que lleva a un bloqueo del compilador JIT.



  • Arreglar Url $ () caracteres de escape.


COMPILADOR

  • Si se especifica la opción -t, el compilador ahora llama automáticamente a msgfmt para compilar los archivos de traducción si es necesario.



  • Las advertencias de funciones no utilizadas ahora apuntan al comienzo de la función.



  • Genere un error si no hay suficientes ranuras locales para las estructuras de control.



  • ASSERT ... PRINT o ERROR permite utilizar PRINT o ERROR para imprimir un mensaje cuando falla la afirmación.



  • Arreglar la meta-información de la subrutina LOCK.


ESCRITOR

  • Scripter ahora compila el contenido de los argumentos en modo en línea (-e).


GB.ARGS

  • Actualizar la traducción al italiano.



  • Actualizar la traducción al holandés.


GB.COMPLEX

  • Optimizar la división, gracias a Cedron Dawg.


GB.DB

  • Connection.GetTemplate () y Connection.ApplyTemplate () ahora tienen en cuenta correctamente las tablas sin clave principal.


GB.DB.FORM

  • Actualizar la traducción al italiano.



  • Actualizar la traducción al holandés.


GB.EVAL

  • Formato de código: el operador unario menos ahora está pegado a su argumento.


GB.EVAL.HIGHLIGHT

  • TextHighlighter: Paint () es un nuevo método que pinta el texto resaltado.


GB.FORM

  • Actualizar la traducción al italiano.
  • Actualizar la traducción al holandés.
  • Panel de herramientas: ya no se bloquea.
  • Spinner: active el temporizador del spinner solo si es necesario, y no de forma permanente.
  • TimeBox es un nuevo control que permite ingresar una duración. Tal vez el nombre del control no sea muy bueno.
  • URLLabel: Reescribe el control como un hijo de Label.
  • FileView: A veces el contenido no se actualizó correctamente.


GB.FORM.DIALOG

  • Actualizar la traducción al italiano.
  • Actualizar la traducción al holandés.


GB.FORM.EDITOR

  • TextEditor: ingresando un delimitador de cadena mientras el texto está seleccionado correctamente, lo encierra nuevamente.



  • TextEditor: La sombra interior ahora cubre el margen.


GB.FORM.MDI

  • Actualizar la traducción al italiano.



  • Área de trabajo: a veces, el cierre de una pestaña con el botón central se activa dos veces, lo que provoca un bloqueo. Hizo una solución.



  • Área de trabajo: agregue la propiedad CloseButton que permite eliminar el botón de cierre global.


GB.FORM.STOCK

  • Arregla algunos íconos.


GB.FORM.TERMINAL

  • TerminalView: Implementar secuencia ESC <N> b.



  • TerminalView: la altura mínima de la pantalla ahora es de 2 líneas.


GB.GTK

  • No propague eventos de la rueda del mouse de ComboBox, TextArea, Slider y ScrollBar, como en los componentes Qt.



  • Ventana: Windows sin ningún control secundario activo atrapa correctamente los eventos del teclado ahora.


Declare el último gancho del bucle de eventos para que los observadores de descriptores de archivos activos y la transferencia activa se transfieran automáticamente.

GB.GTK3
No propague eventos de la rueda del mouse de ComboBox, TextArea, Slider y ScrollBar, como en los componentes Qt.

TabStrip: las etiquetas de la pestaña ahora se muestran correctamente cuando la pestaña no tiene un icono.

Hacer compilar componente con versión GTK + <3.20.

Ventana: Windows sin ningún control secundario activo atrapa correctamente los eventos del teclado ahora.


  • Declare el último gancho del bucle de eventos para que los observadores de descriptores de archivos activos y la transferencia activa se transfieran automáticamente.


GB.GUI
Tenga en cuenta los otros componentes de la GUI solicitados para elegir el kit de herramientas.

GB.GUI.BASE

  • Paint: agregue un método oculto no documentado que calcula el ancho de caracteres de una fuente fija.


  • SpinBox: Alignment es una nueva propiedad que permite definir la alineación del texto interno del control.
  • SpinBox: ShowZero es una nueva propiedad que le dice a rellenar el número mostrado con ceros.
  • SpinBox: Limit es un nuevo evento que se genera cuando el usuario intenta pasar el valor máximo o antes del valor mínimo.
  • SpinBox: el siguiente uso del mouse siempre tiene en cuenta el valor ingresado con el teclado.
  • ScrollArea: La sombra es más suave ahora.
  • GridView: hacer que el color seleccionado sea menos transparente.


GB.GUI.QT

  • Tenga en cuenta los otros componentes de la GUI solicitados para elegir el kit de herramientas.


GB.INOTIFY

  • Ver: Eventos [] restablece incorrectamente eventos fuera del conjunto de eventos dado e ignoró el valor asignado.


GB.JIT

  • No utilice la declaración inicial de bucle en el código C generado para las versiones anteriores de gcc.
  • Corrija el valor predeterminado de los argumentos opcionales de la función Object.
  • Soporte para compilador tcc.
  • Arreglar la instrucción de depuración.
  • Soporte para la nueva instrucción Assert.
  • Ejecutar la compilación JIT en el fondo.


  • JIT.Debug es una nueva propiedad que permite habilitar mensajes de depuración JIT en tiempo de ejecución.
  • No muestre el mensaje de depuración del aborto si no hay una compilación para anular.
  • Las variables de objeto se gestionan correctamente ahora.
  • DO ... LOOP y REPEAT ... UNTIL al principio de la función ahora se compila correctamente en todos los casos.


GB.MAP

  • MapView: el mapa ahora se encuentra correctamente debajo del cursor del mouse cuando se aleja.
  • Los elementos del círculo ahora tienen el buen radio.
  • MapPoint.Distance () ahora es una función pública estática.
  • Map.Proxy es una nueva propiedad que permite definir el proxy utilizado por todas las solicitudes HTTP realizadas para recuperar los mosaicos del mapa.
  • GetShape (), GetTile (), Remove () y Exists () son nuevos métodos para manipular capas de mapa.
  • DefaultCache es una nueva propiedad para establecer la ruta de la memoria caché predeterminada en otro lugar desde la Página principal del usuario.
  • GetItem es un nuevo método para manipular elementos de forma dentro de una capa de forma.
  • GetCenter hecho estático en MapPoint.
  • LineStyle es una nueva propiedad para los elementos de Shape Layer.
  • Se agregaron algunos comentarios de ayuda en línea sobre varios métodos y propiedades.
  • Ahora se pueden mover los círculos cambiando su propiedad del Centro.
  • Los círculos ahora pueden tener colores de relleno que no sean los predeterminados de Shape.
  • El icono del elemento ahora está centrado, si no es el predeterminado.
  • El icono del elemento ahora puede ser coloreado, si no es el predeterminado.
  • Mejor manejo de la opacidad de la capa.
  • Mejor manejo de ZoomOut.
  • Uso de FAST en clase MapPoint y módulo Geo.


GB.MEDIA

  • MediaPipeline: Pos es un nuevo sinónimo para la propiedad Posición.
  • MediaPipeline: Position es un nuevo evento que se genera cuando la posición de los medios ha cambiado.
  • MediaPipeline: Seek () es un nuevo método que permite mover los medios a una posición específica mientras especifica las banderas de búsqueda de GStreamer.
  • MediaPipeline: Speed ​​es una nueva propiedad que permite definir la velocidad de reproducción de los medios. Una velocidad negativa se jugará hacia atrás.
  • MediaPipeline: Forward () es un nuevo método que permite avanzar una cantidad específica de cuadros. Mover hacia atrás no funciona en este momento.
  • Medios: Agregar las constantes de búsqueda MediaPipeline.Seek ().


GB.MEDIA.FORM

  • MediaView: Combina el botón de reproducción y pausa.
  • MediaView: Eliminar el símbolo de pausa grande blanco.
  • MediaView: Speed ​​es una nueva propiedad que permite definir la velocidad de reproducción de los medios.
  • MediaView: Cambiar el tamaño del control mientras el medio está en pausa, redimensiona correctamente el marco mostrado.


GB.NET

  • UdpSocket: declaración de la clase Fix.
  • UdpSocket: Host es una nueva propiedad que permite definir la dirección IP a la que se enlazará el socket UDP.
  • El método SerialPort: Open () ahora genera errores más detallados.
  • SerialPort: Soporte para cualquier velocidad de puerto en Linux.


GB.NET.CURL

  • Curl.DefaultProxy es una nueva propiedad que permite definir el proxy predeterminado de todos los objetos HttpClient recién creados.


GB.NET.PO3

  • Actualizar la traducción al holandés.


GB.PDF

  • Reemplace Guint por uint, de lo contrario, el componente parece que ya no se compila en algunos sistemas.


  • Hacer gb.pdf compilar con poppler 0.72.


GB.REPORT

  • Actualizar la traducción al holandés.


GB.REPORT2

  • Actualizar la traducción al holandés.


GB.QT4

  • Declare el último gancho del bucle de eventos para que los observadores de descriptores de archivos activos y la transferencia activa se transfieran automáticamente.


GB.QT5

  • Declare el último gancho del bucle de eventos para que los observadores de descriptores de archivos activos y la transferencia activa se transfieran automáticamente.


GB.REPORT2

  • Actualizar la traducción al italiano.
  • Agregue el requisito para gb.eval en la información del componente y cárguelo explícitamente.


GB.SDL2

  • El argumento de opacidad Draw.Image () funciona como se espera ahora.
  • Fuente [] ahora asume un tamaño predeterminado de 10 puntos, por lo que no tiene que especificar el tamaño de fuente al crear el objeto Fuente.
  • No se bloquee al dibujar cadenas estáticas de un carácter.


GB.TERM.FORM

  • Actualizar la traducción al holandés.


GB.UTIL

  • Permitir recuperar la zona horaria de Date.FromRFC822 ().
  • Propague los errores internos de Date.FromRFC822 () en lugar de seguirlos con un bloque Catch.
  • Mejore el mensaje de error de Date.GetRFC822Zone () al mostrar lo que no se pudo reconocer como una zona horaria.
  • Agregue Date.FromUTC () como inverso a Date.ToUTC ().
  • Solucione el error de la zona horaria en Date.FromRFC822 () y pase todas las pruebas.


GB.UTIL.WEB

  • URL es ahora una clase dinámica que puede usarse para analizar y modificar el contenido de una URL.



  • URLQuery es una nueva clase que representa la parte de consulta de una URL.


GB.WEB

  • Normalice correctamente los nombres de los archivos de sesión de SQLite.


GB.WEB.FEED

  • Actualizar la traducción al holandés.
  • Introduzca la clase RssDate para el manejo de la fecha y la zona horaria y la documentación de actualización.
  • RssGuid: no establezca IsPermaLink de forma predeterminada al analizar.
  • Marque el componente como "estable".
  • Dependa de gb.util para conversiones de fecha RFC822.


GB.WEB.FORM

  • Actualizar la traducción al italiano.
  • Actualizar la traducción al holandés.
  • WebTextArea: La propiedad de texto funciona correctamente de nuevo.


GB.XML

  • La declaración de <! DOCTYPE> ahora no distingue entre mayúsculas y minúsculas.



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

martes, 5 de febrero de 2019

Gambas3: Ejemplo Marquesina

Gambas3: Ejemplo Marquesina


Un pequeño ejemplo hecho en gambas3 de una marquesina desplazándose por un formulario usando un control timer y dos textlabel.





Codigo fuente: alojado en google drive

martes, 1 de enero de 2019

Programa Recortes: Mejoras: guardando capturas en el portapapeles.




Programa Recortes

 Mejoras: guardando capturas en el portapapeles.

Recortes en una aplicación que hice para el comando import (que contiene la suite imagemagick ), que le da un interfaz gráfico este comando y facilita su uso. Hace tiempo que lo hice, y hoy le he añadido una mejora con la que consigo que la captura que realices se guarde también en el portapapeles del sistema, ademas de poderla guardar en un archivo. Algo muy útil si quieres realizar pequeños apuntes, tutoriales o incluso entradas de blog, si no necesitar editarlas (si es así es mejor usar pintascreen ).






Codigo fuente alojadon en github:
https://github.com/jsbsan/recortes







domingo, 22 de julio de 2018

Gambas3: Ejemplo de Panel con Iconos para un lanzador

Gambas3: Ejemplo de Panel con Iconos para un lanzador

Un pequeño ejemplo, muy simple, para crear un panel con iconos, que es añadir iconos, moverlos, guardar sus posiciones y cargar sus posiciones.







Codigo fuente:
https://drive.google.com/open?id=1ZTv_7tmTByraZwO7tFQAV_rYkIC5QdI1

viernes, 11 de mayo de 2018

Ya disponible nueva versión de Gambas 3.11 (y también disponible en PPA)


Ya disponible nueva versión de Gambas 3.11 (y también disponible en PPA)


Desde hace varios dias (8 de mayo)  teniamos ya la version 3.11 de gambas3, con la que podemos compilarla e instalarla en nuestros sistemas... pero hoy, gracias a sebikul, ya tenemos los PPA para instalarlo fácilmente en las distribuciones Ubuntu y derivadas de ellas.



 Para instalar el ppa y gambas3, escribir en consola:
sudo add-apt-repository ppa:gambas-team/gambas3 
sudo apt-get update
sudo apt-get install gambas3

Fuentes
https://launchpad.net/~gambas-team/+archive/ubuntu/gambas3
http://gambas.sourceforge.net/en/main.html

domingo, 6 de mayo de 2018

apagaya: comando para forzar el apagado de tu ordenador.

apagaya: comando para forzar el apagado de tu ordenador.


Este simple programa lo que hace es apagar tu ordenador, mejor dicho, fuerza a apagar tu ordenador. Hay que tener cuidado ya que antes de ejecutarlo tenemos que guardar los datos y cerrar los programas nosotros, ya que el programa lo hará pero de modo "rápido" sin guardar datos. Es una forma de apagado que interesa tenerla para cuando algún programa esta bloqueando  que nuestro ordenador se apague.



Tenéis que crear el lanzador y ponerle vuestra contraseña en el comando "apagarya", para que funcione correctamente el programa:


Marcado en rojo donde teneis que poner vuestra contraseña como  parámetro del programa apagarya

Con el código fuente de este programa podemos aprender:
- Como leer argumentos de la linea de comando
- Como ejecutar como superusuario (admnistrador) comandos de la terminal.


Código fuente del programa:
Public Sub Main()
  If Application.Args.count > 1 Then
    Shell ("echo " & Application.Args[1] & " | sudo -S reboot")
  Endif
End
Como veis, si no hay argumentos no se ejecuta la orden reboot. Para que se ejecute el programa correctamente, debeis poner en 

Nota:
Además si este argumento no es la contraseña, evidentemente el comando sudo reboot no se va a ejecutar.

Enlace de descarga: alojado en google drive

Fuentes:

domingo, 22 de abril de 2018

Script en gambas3


Script en gambas3


Con gambas3, podemos realizar ademas de aplicaciones gráficas, y para terminal, también podemos crear script para ejecutarlos en la terminal rápidamente. Para ello tenemos que:


1º Instalar el paquete gambas3-script:
$ sudo apt-get install gambas3-script
Podemos ver la ayuda de gambsa3-script usando el parametro --help:
 $ gbs3 --help
Compile and execute a Gambas script.
Usage: gbs3 [options] [<script file>]
Options:
  -u              force components loading ('comp1,comp2...')
  -e              execute the source code provided by the command line ( ':' separator )
  -c --nocache    force the script compilation (do not check cache)
  -v --verbose    be verbose
  -f --fast       use just-in-time compiler
  -V --version    display version
  -L --license    display license
  -h --help       display this help
Para crear un script os dejo un ejemplo:
2º  Crear un archivo de texto "script.gbs" donde en la primera linea escribiremos la siguiente linea:
#!/usr/bin/env gbs3

3º Despues podemos ya programar en gambas.
dim texto as string= "hola mundo"
Print texto


4º El archivo creado, le pondremos permisos de ejecucion:
$ chmod +x script.gbs

Y ya podremos ejecutarlo.

$./script.gbs

Os dejo un ejemplo con funciones y subrutina principal Main:
#!/usr/bin/env gbs3
public function presentacion(a as string)
dim i as integer
for i=1 to 10
   print i,a
next
end
public sub Main()
        dim texto as string="hola mundo"
presentacion(texto)
end
Ejemplo de descarga: alojado en google drive

fuente:
 (ejemplos de gambas2)
https://es.wikibooks.org/wiki/Gambas/Scripting_con_Gambas

domingo, 18 de marzo de 2018

AEMET OPENDATA: Gambas3 y extraer datos para ver mapa de análisis de superficie

AEMET OPENDATA: Gambas3 y extraer datos para ver mapa de análisis de superficie

Del siguiente hilo del foro de gambas-es.org ( https://www.gambas-es.org/viewtopic.php?f=1&t=6870&start=0 ), hemos estado hablando de como extraer datos usando el API de AEMET, y el usuario Tincho aportó un código de ejemplo para extraer el mapa de análisis de superficie (que AEMET lo va actualizando cada 12 horas).y le he añadido un formulario para que se dibuje el mapa desde una pequeña aplicación llamada "tiempo".



Aplicación .deb y código de fuente: alojado en drive google

Fuentes:
https://opendata.aemet.es/centrodedescargas/inicio
https://opendata.aemet.es/centrodedescargas/AEMETApi?
https://www.gambas-es.org/viewtopic.php?f=1&t=6870&start=0








miércoles, 28 de febrero de 2018

Dalton: Programa para ayudar a dáltonicos en el uso del ordenador


Dalton: 

Programa para ayudar a dáltonicos en el uso del ordenador [accesibilidad]


Escuchando un podcast de Fran Casas (https://www.ivoox.com/sigo-cambios-blog-podcast-audios-mp3_rf_24080074_1.html), donde nos contaba alguna anécdota relacionada con el daltonismo que sufre y los problema de elegir los temas de colores a la hora de crear sus blogs, he creado una pequeña herramienta de las llamada "accesibilidad", que informa sobre el color donde tengamos posicionado el cursor mientras lo movemos por la pantalla.

Os dejo el enlace de descarga del instalador .deb y su código fuente: Alojado en Drive-Google
y un video de como usarlo. Espero que os sea de utilidad.





Saludos

sábado, 7 de octubre de 2017

Gambas: Obtener numero de dias del Mes. Ejemplo Uso de funciones externas.

Gambas: Obtener número de días del Mes. Ejemplo Uso de funciones externas.


Revisando el foro de gambas-es.org, encontré este interesante código donde el usuario Vuott, usaba la función externa "g_date_get_days_in_month" de la libreria "libglib-2.0", para obtener el numero de días de una mes y año concreto.



Library "libglib-2.0"


' guint8 g_date_get_days_in_month (GDateMonth month, GDateYear year)

' Returns the number of days in a month, taking leap years into account.

Private Extern g_date_get_days_in_month(GDmonth As Integer, GDyear As Integer) As Byte


Public Sub Main()

 
 Dim num As Byte

 Dim mes As String

 Dim meses As String[] = [Null"Enero""Febrero""Marzo""Abril""Mayo""Junio","Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre"]

 
  mes = "Febrero"

 
  num = g_date_get_days_in_month(meses.Find(mes), 2016)

   
  Print "El mes de "; mes; " contiene "; num; " dias."

  
End




Codigo descargable: Alojado en google drive


fuente:
https://www.gambas-es.org/viewtopic.php?f=4&t=6633