Shell 03-04-2023, 14:38
Buenas!.

Está claro que al administrador no le gusta Java. No hay subforo.

Es que tenía una pregunta. Espero que sencilla. A ver si encuentro usuarios de gambas
que usen o les guste "un poco" Java.

Mi intención "siempre" a la hora de aprender un lenguaje es la de llevar a Gambas una idea,
mejorar la programación. Y sobre todo mejorar el aprendizaje de la programación orientada a
objetos.

"A modo sencillo". Si comparásemos un proyecto "básico" de Java con uno de Gambas.
¿ Cuál pensáis que son las diferencias "principales" ?.

Ayer estuve creando otro ejemplo en Java y creando uno similar en Gambas.

Imaginar un proyecto de consola para Gambas.
- Tenemos un Main como la rutina principal

En Java también tenemos un main, solo que este main es "estático".
Si recordamos bien, es un método común a todas las instancias que se cree de esta clase.

Voy a poner el ejemplo que hice ayer hecho en Java. Se trata de "ir" insertando valores en un array,
hasta que este está lleno de valores distintos a cero. Este array está desordenado.

Parece que en Java todo son clases.

Código:
package capitulo5tablas;

import java.util.Arrays;

public class InsertarEnTabla {

    static int numElem;
    static int[] t = new int[5];

    public static void main(String[] args) {

        InsercionNoOrdenada(12);
        InsercionNoOrdenada(7);
        InsercionNoOrdenada(45);
        InsercionNoOrdenada(80);
        InsercionNoOrdenada(4);
        InsercionNoOrdenada(129); // No se puede realizar por tabla llena
        InsertarEnTabla.InsercionNoOrdenada(56);

    }

    public static void InsercionNoOrdenada(int valor) {
        // El orden no importa.
        // Se inserta detrás del último elemento de la tabla
        // mientras exista un hueco libre
        if (numElem == t.length) {
            System.out.println("La tabla está llena");
        } else {
            t[numElem] = valor;
            System.out.println(Arrays.toString(t));
            numElem++;
        }
    }
}

Fijaros, que tanto el main, como el método, como las variables publicas son "estáticas".
Aparentemente todo lo que se llama desde el main, tiene que ser estático. Y logicamente
las variables deben cumplir esa condición.

En este ejemplo no se está creando instancias de una clase.
Se podría haber hecho, pero en este ejemplo seria una "mala practica" hacer eso.

En Gambas creé una clase de este ejemplo, pero no tiene mucho sentido, ya que la clase no es instanciable,
no tiene constructor, se puede llevar parte del código a un módulo o a donde se encuentra el Main.

Os muestro el código en Gambas. Hace lo mismo, pero no hay métodos "estáticos",
ni variables de la misma condición.

Código:
Private numElem As Integer
Private tarray As New Integer[5]

Public Sub Main()
 
  InserccionNoOrdenada(12)
  InserccionNoOrdenada(7)
  InserccionNoOrdenada(45)
  InserccionNoOrdenada(80)
  InserccionNoOrdenada(4)
  InserccionNoOrdenada(129) 'No se puede realizar por array lleno
 
End

Public Sub InserccionNoOrdenada(valor As Integer)
 
  If numElem = tarray.Count Then
    Print "El array está lleno"
  Else         
    tarray[numElem] = valor    
    ACadena()   
    Inc numElem
  Endif
 
End

Public Sub ACadena()
 
  Print "[ ";
  For a As Integer = 0 To tarray.Max
    Print tarray[a];
    If a < tarray.Max Then Print " , ";
  Next
  Print " ]"
 
End

La salida de ambos ejemplo podrían ser como esta:
 
Cita:[ 12 , 0 , 0 , 0 , 0 ]
[ 12 , 7 , 0 , 0 , 0 ]
[ 12 , 7 , 45 , 0 , 0 ]
[ 12 , 7 , 45 , 80 , 0 ]
[ 12 , 7 , 45 , 80 , 4 ]
El array está lleno

No digo que sea ni peor ni mejor. Debe ser cuestión de constumbres, que no me acostumbro a que el main de Java sea estático.
Lógicamente desde este se pueden crear instancias de una clase, como podíamos hacer también en Gambas desde su Main.
Eso de estático me choca un poco, cuando el ejemplo es "sencillo", no manejo clases. En Java si, es la clase InsertarTabla.

A ver que me podéis comentar los que habéis conocido un poco Java.

Saludos
omoreno 03-04-2023, 01:37
Hola a todos.

Pregunta la moderador jguardon: ¿Es posible que se pueda tener un apartado llamado WEB?.
Con esto se tendría en un solo lugar todo lo que este relacionado a los temas Web.

Por ahora este seria mi aporte: un PDF y un ejecutable de gambas, es como una guía inicial enfocada a las formas de presentar WebApp.
Hago la invitación solamente a los que tienen experiencia y a los que no la tienen también (osea a todos... Big Grin ).

Envíen sus correcciones o aporten lo que consideren necesario.

Nota: Intente agregar un archivo ejecutable de gambas comprimido de  en  ZIP (1.2MB), pero el sistema me dice que solo se puede 1024k.
por eso lo he guardado en google drive:

Manual_WebForm.gambas

Nota: para ejecutar el archivo Manual_WebForm.Gambas se puede realizar de esta forma:
  1. En la carpeta donde esta el archivo Manual_WebForm abrir una terminal
  2. Ejecutar con estos comandos: GB_HTTPD_PORT=8080 gbr3 --httpd Manual_WebForm.gambas
  3. Abres un navegador web y colocas http://localhost:8080/
10-04-2023:
En el post #11
tenemos el código fuente muy similar al del Manual_WenForm.gambas, con cambios solicitados por el colega tincho.

Saludos.
Archivos adjuntos
.pdf
Crear WebApp con Gambas3.pdf (Tamaño: 953.99 KB Descargas: 33)
Shordi 02-04-2023, 12:10
He subido un nuevo video-tutorial sobre el proyecto Casio, por si a alguien le interesa. Los puntos tratados son: la instalación de una fuente, el uso de la clase paint y la configuración de un formulario para comportarse como widget (aunque esto último se vio con detalle en el primer video).



Como ya sabréis, podéis obtener el proyecto en su última versión desde gitlab
Espero que os guste.

Saludos
Páginas (564):    1 189 190 191 192 193 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 292
Último miembro: DarkWolf
Temas del foro: 1,742
Mensajes del foro: 9,029
Últimos temas
Ordenar en un TableView
Foro: General
Último mensaje por: Shordi, 03-11-2025, 18:41
Respuestas: 3 - Vistas: 115
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 02-11-2025, 13:36
Respuestas: 9 - Vistas: 1,564
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,335
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 116
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.