IPB

Bienvenido, invitado ( Identificarse | Registrarse )

2 Páginas: V   1 2 >  
Reply to this topicStart new topic
> Tutorial de Gambas, Interprete para Linux de VisualBasic


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



Bueno, para ir ampliando esta seccion voy a poner un tutorial de lo que es uno de mis lenguajes preferidos, Gambas laugh.gif

Gambas es un intrprete de VisualBasic para Linux, muy sencillo de aprender y utilizar, y para empezar a hacer interfaces sencillas es el mejor lenguaje que se me ocurre, y aunque no tengas linux es una buena base para seguir metiendote dentro del mundillo de VisualBasic (que ya pondr un tutorial de eso otro dia)



Tabla de contenidos:
  1. Instalando Gambas
  2. Hola Mundo 1
  3. Hola Mundo 2
  4. Hola Mundo 3
  5. Algo de Teora Basica
  6. Evento KeyPress
  7. Grupos de Controles
  8. Trabajo con Eventos
  9. Multiidioma
  10. Proceso de Traduccin
1.Instalando Gambas


Distribuciones

En la pgina oficial de Gambas, puedes encontrar tanto el cdigo fuente, como indicaciones para encontrar paquetes binarios de este software: http://gambas.sourceforge.net notas importantes:

TODAS LAS DISTRIBUCIONES: Los paquetes binarios no tienen por qu corresponder siempre a la ltima versin disponible, algunas distribuciones pueden tener paquetes especialmente anticuados, con versiones anteriores a la 1.0. En esos casos, es mejor bajar el cdigo fuente y compilarlo en la propia mquina.

DEBIAN: desde los repositorios de Linex, puedes encontrar los paquetes ms actualizados disponibles.


Componentes

Para instalar la mayor parte de los componentes de Gambas, es necesario instalar una serie de libreras en el sistema, de las cuales los componentes se sirven para realizar su labor:

gb.net : depende tan slo de la librera estndar de C, glibc, por lo que disponiendo de un sistema Linux o *BSD en marcha, no se necesita nada adicional.




gb.net.curl : emplea libcurl para su trabajo. La librera se puede encontrar como cdigo fuente desde su web http://curl.haxx.se/ . Compilndola e instalndola antes de instalar Gambas, este componente funcionar correctamente. Hay que tener en cuenta que Gambas necesita como mnimo la versin 7.11 de libcurl. Con versiones anteriores, el componente gb.net.curl no funcionar correctamente, o ni siquiera compilar. Tambin es posible instalar libcurl con los binarios de sistemas Mandrake o RedHat/Fedora modernos mediante la herramienta "urpmi" ( ejecutar urpmi libcurl y urpmi libcurl-devel debera bastar), y en sistemas Debian,Linex o Ubuntu (usando apt-get install libcurl y apt-get install libcurl-devel o bien con la herramienta grfica Synaptic). En caso de instalar binarios, es necesario, como se indic previamente, que los paquetes instalados correspondan a la versin 7.11 o posterior


--------------------
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



2. Hola Mundo 1
  1. Vamos a seguir una serie de pasos, sin pensar demasiado, para hacer una aplicacin muy sencilla, esto nos servir para familiarizarnos con Gambas, aunque an desconozcamos muchas cosas.
  2. Ejecuta Gambas, pulsa la opcin "Nuevo Proyecto", aparecer el asistente de creacin de nuevos proyectos, lee la informacin, y pulsa "siguiente". Elige la opcin "Crear un proyecto grfico", y pulsa "siguiente". En nombre de proyecto pon "HolaMundo", por ejemplo, y en el ttulo, "Proyecto de pruebas".

  3. Elige la carpeta a partir de la cual se crear la carpeta donde se almacenarn los archivos del proyecto. Si la creas, por ejemplo, en "/home/usuario", se crear una carpeta "/home/usuario/HolaMundo". Pulsa "siguiente". Lee la informacin, y pulsa OK.
  4. Aparecer el entorno de desarrollo. Por ahora no hemos creado nada, vers que en el rbol del proyecto (que aparece con la cabeza de la mascota, y el nombre "HolaMundo"), hay una serie de secciones para depositar las diferentes partes del proyecto. De momento no te preocupes por todas las opciones.

  5. Pulsa "Formularios" con el botn izquierdo para seleccionar esta seccin, y a continuacin pulsa el botn derecho para que aparezca un men flotante. Si eres zurdo y has configurado el ratn de ese modo, los botones sern los contrarios, derecho para seleccionar, e izquierdo para los mens.
  6. En el men aparece la opcin "Nuevo". Sitate sobre ella, y en el nuevo men que surge, pulsa sobre la opcin "formulario", con el botn izquierdo.

  7. Aparece un pequeo asistente para formularios. En "nombre" puedes poner "FrmPrincipal", para identificarlo. Deja el resto de las opciones por defecto, y pulsa "OK".
  8. Podrs comprobar que ha aparecido un formulario vaco, listo para editar. Si te situas en el borde del formulario, hasta que el cursor cambie de forma, y lo mueves mientras mantienes el botn izquierdo pulsado, comprobars que puedes variar el tamao del formulario hasta darle la forma que deseas.

  9. Ahora fjate en la "Caja de herramientas". Aqu se muestran los controles que podemos utilizar para disear los elementos de nuestro formulario. De momento utilizaremos una etiqueta. Pulsa con el botn izquierdo en el icono que tiene una letra "A" grande y a continuacin sitate con el ratn en el formulario, y, mientras mantienes pulsado el botn izquierdo, mueve el ratn hacia la derecha y hacia abajo. Vers como la etiqueta se situa sobre el formulario y puedes variar su tamao. Si sueltas el botn del ratn y acontinuacin pulsas sobre la etiqueta, vers que aparecen en los extremos unos cuadritos. Si te situas sobre ellos, mantienes el botn izquierdo pulsado, y mueves el ratn, puedes variar el tamao de la etiqueta, y en general, de cualquier control que uses. Si te situas en el centro de la etiqueta, y mantienes pulsado el botn izquierdo mientras mueves el ratn, cambiars la posicin de la etiqueta en el formulario.

  10. Vamos a dar el toque final, pulsa la etiqueta y mira la ventana de propiedades, aqu vemos las caractersticas de la etiqueta. Busca la propiedad llamada "Text", y escribe ah "Hola Mundo". Para que quede ms bonito, busca la propiedad "Align", y selecciona "Center".

  11. Y por ltimo, la magia, ve al men "Proyecto" de la ventana principal de Gambas, y pulsa en la opcin "Ejecutar". Ah lo tienes! tu programa con una ventana diciendo "Hola Mundo!"

  12. Ha sido fcil, verdad?. No ha sido necesario emplear ni una lnea de cdigo, slo trabajar con el ratn un poco.


--------------------
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



3. Hola Mundo 2
    Ahora vamos a aplicar un poco de cdigo escrito para hacer un ejemplo ms vivo. Has ledo el tutorial anterior del "Hola Mundo"? Pues si no lo has hecho, aprovecha ahora, y realiza los pasos indicados en l del nmero 1 al nmero 7, de forma que tengas un formulario vaco listo para editar.

  1. Vamos a aadir un botn. Mira ahora en la "Caja de herramientas". Hay un control que parece un botn con el texto "OK". De hecho, es un botn.

  2. Sitalo en el formulario del mismo modo que hiciste con la etiqueta del primer programa, de modo que quede situado a tu gusto. A continuacin busca en la ventana de propiedades la propiedad "Text", y cambia su valor por "Saludar".

  3. Ahora pulsa dos veces seguidas (o doble click, como le gusta decir a muchos) sobre el botn. Acceders a una ventana de cdigo, en el que te indica esto:

    ' Gambas class file

    PUBLIC SUB Button1_Click()



    END
  4. Vamos a pararnos un momento a ver este cdigo: observa la primera lnea, vers que comienza con el smbolo " ' ". Todas las lneas que empiezan por este smbolo, son "comentarios", y significa simplemente que es una nota aclaratoria para el programador, que es ignorada totalmente por el compilador de Gambas. Si quieres, prueba a aadir ms comentarios en el cdigo:

    ' Gambas class file
    ' Este es un ejemplo de programa sencillo
    ' para aprender algunos conceptos
    ' bsicos sobre Gambas

    PUBLIC SUB Button1_Click()



    END
  5. Observemos las siguientes lneas: "PUBLIC SUB Button1_Click()" y "END". Estas dos palabras claves definen el principio y final de una "Funcin". Una funcin no es ms que un conjunto de ordenes que Gambas ejecuta cuando la funcin es llamada. En este caso, la funcin se ejecutar cuando se haga "Click" sobre el botn "Button1". Ahora mismo no hay nada entre el principio y el final de la funcin, por tanto no pasar nada al pulsar el botn.
  6. Diremos a Gambas que ha de mostrar un dilogo de mensaje diciendo "Hola Mundo" cuando se pulse el botn. Para eso, utilizaremos el objeto "Message". Ya hablaremos ms adelante acerca de los objetos:

    ' Gambas class file
    ' Este es un ejemplo de programa sencillo
    ' para aprender algunos conceptos
    ' bsicos sobre Gambas

    PUBLIC SUB Button1_Click()

    Message.Info ("Hola Mundo!")

    END
  7. Despus de escribir "Message." habrs observado que se ha desplegado un men con varias palabras clave: "Info", "Warning", ... Esto es lo que se llama "autocompletado de cdigo", y es una utilidad para mostrarte las diferentes posibilidades que ofrece un objeto, en este caso "Message". Cuando termines este ejemplo, prueba las otras opciones, vers como vara el aspecto del mensaje. Tambin habrs comprobado que tras escribir el parntesis inicial, aparece una ayuda indicando la sintxis de este mtodo.
  8. Ahora ya solo resta probarlo. Si has hecho todo bien, tras acudir al men "Proyecto", y pulsar la opcin "ejecutar", aparecer el formulario con nuestro botn. Pulsa el botn, y surgir el mensaje deseado.


--------------------
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



4. Hola Mundo 3
    Ahora vamos a trabajar sin utilizar el componente grfico. Hay muchos programas que no necesitan de componente grfico, por ejemplo, por que slo realizan tareas no visibles para el usuario, o porque quieren consumir pocos recursos, o porque el equipo donde se ejecutar no va a disponer de sistema grfico. Hay mltiples razones para utilizar slo la consola, y los ejemplos indicados son slo unas pocas.
  1. Ejecuta Gambas, y selecciona nuevo proyecto. Al llegar hasta el punto donde se selecciona el tipo de proyecto, elige "Crear un proyecto de terminal"

  2. El resto de los pasos ya los sabes desde el primer tutorial. Una vez ests en la interfaz de Gambas, tendremos que escribir el cdigo para escribir "Hola Mundo" en la consola (o terminal, la palabra que ms te guste). Ya no podemos crear un nuevo formulario, puesto que no hay interfaz grfica. Crearemos entonces un nuevo mdulo, que es un archivo de cdigo que no est asociado a ningn formulario. Tambin podramos haber creado una clase, pero como no sabemos todava nada de clases y objetos, lo dejaremos para ms adelante. Pon al mdulo el nombre "ModPrincipal", y acepta.

  3. Observa que en el cdigo ha aparecido una funcin, automticamente, como ocurri en la segunda parte de este tutorial.

    ' Gambas module file

    PUBLIC SUB Main()

    END
  4. Todos los programas cuyo inicio no se encuentra en un formulario, deben tener una funcin, llamada forzosamente "Main", que ser la que se ejecute nada ms comenzar el programa. Ahora mismo no hay nada, y si ejecutramos el programa, nada pasara. De hecho, este es el programa ms simple que puede escribirse con Gambas. Aadiremos ahora el cdigo para mostrar nuestro mensaje. Ya no utilizaremos la clase "Message", que forma parte del componente grfico de Gambas, si no una funcin llamada "PRINT" que permite "imprimir" mensajes en la consola:

    ' Gambas module file

    PUBLIC SUB Main()

    PRINT "Hola Mundo"

    END
  5. Para ver mejor el resultado del programa, vamos a aprender a compilar un programa. Acude al men "Proyecto" y pulsa la opcin "Crear Ejecutable". Si no te aparece ningn mensaje de error, ya tienes el ejecutable listo para utilizar. Dnde est, por cierto? Pues est en la carpeta del proyecto, as si el proyecto se encuentra, por ejemplo en /home/usuario/HolaMundo, el ejecutable estar dentro de esta carpeta, y con el nombre "HolaMundo".
  6. Abre una ventana de terminal, acude a la carpeta, y ejecuta el programa para ver el resultado.




    Es el momento de decir tambin que hay dos tipos de lenguaje de programacin, los compilados y los interpretados. Los primeros, al compilar, crean verdaderos binarios, cdigo entendible directamente por el microprocesador del equipo. Los segundos, o bien no disponen de compilador (como la shell bash), o bien el compilador genera un "cdigo intermedio", como es el caso de Java o Gambas. Dicho cdigo intermedio, no es entendible directamente por el microprocesador, si no que un programa llamado intrprete (gbx, en el caso de Gambas), hace de intermediario entre la ejecucin real del programa y el cdigo intermedio. La razn de utilizar ese cdigo intermedio, es que es ms rpido que el cdigo "humano" que nosotros hemos escrito, aunque ms lento que el cdigo binario.
    Este planteamiento tiene la ventaja de que el cdigo generado puede ser ejecutado en cualquier mquina para la que exista un intrprete del lenguaje, independientemente de la marca del procesador o el sistema operativo (compila una vez y salo en todos sitios, es el lema). Como inconveniente, el rendimiento es menor (no se puede utilizar para aplicaciones que exijan gran rendimiento del equipo), y es necesario tener instalado el intrprete en la mquina.


--------------------
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



5. Algo de Teora Basica


Existen muchas teoras programacin, Gambas implementa algunos de sus conceptos, y vamos a tratar de aclararnos un poco respecto a las tcnicas en las que nos apoyaremos para programar.

Programacin estructurada

La verdad es que el ttulo es algo pretencioso, hay libros completos sobre ello, pero lo que aqu interesa explicar es el concepto de "variable", "funcin" y "mbito".

Variables:

Los programas almacenan la informacin de uso inmediato en memoria RAM. Trabajando al ms bajo nivel, se deposita la informacin indicando la direccin de la memoria RAM directamente. Esto es muy engorroso, especialmente cuando el nmero de datos a almacenar es muy grande.


Para solucionarlo, los lenguajes de programacin aportan el concepto de "variable": es nombre al cual nos referimos para almacenar informacin u obtenerla, de direcciones de memoria que se gestionan sin que a nosotros nos afecte directamente.


Nosotros indicaremos un nombre, por ejemplo "MiValor", asignaremos valores con el operador " = " (MiValor = 3), y haciendo referencia a ese nombre podremos leer su contenido (PRINT MyValor , mostrara en pantalla "3" en este ejemplo).


Segn el lenguaje de programacin se habla de que no est "tipado", o que est "tipado", en funcin del modo en que usa las variables. En un lenguaje "no tipado", cada variable puede almacenar cualquier cosa, (un nmero, una cadena de texto, etc). Esto puede estar bien para programar muy rpido, pero da lugar a graves errores en aplicaciones medianas y grandes. Gambas, por el contrario, es un lenguaje "tipado", y esto significa que de modo previo al uso de cualquier variable, forzosamente hemos de "declararla", especificando el tipo de datos que va a contener. Estos son algunos ejemplos de "declaraciones" con Gambas:

DIM MyVar As Integer PRIVATE Respuesta As String PUBLIC Suma As Float


En estos ejemplos, y sin que nos interese ahora la primera parte de estas declaraciones (DIM, PRIVATE,PUBLIC), estamos indicando que deseamos utilizar una variable llamada "MyVar" que almacenar nmeros enteros, otra llamada "Respuesta" que almacenar cadenas de texto, y otra llamada "Suma" que almacenar nmeros con coma flotante (es decir, es capaz de almacenar nmeros con parte decimal)

Funciones:

En los primeros tiempos de la informtica, y en realidad, en la actualidad los microprocesadores siguen trabajando as, los programas eran una ristra largusima de ordenes, una detrs de otra, sin ms posibilidad de "estructuracin" que dar saltos hacia a delante o hacia atrs en el cdigo.


Ms adelante se impuso un modelo ms "estructurado": dividir el cdigo en bloques separados, llamados "funciones" o "mtodos". Un programa completo estar formado por funciones, pequeos bloques de cdigo a los que se le envan una serie de valores de los cuales se hace responsable para procesarlos, y retornar un valor, si procede.


Cada programa en Gambas empieza con una funcin "Main", o principal, y a lo largo de su cdigo, esta funcin enva datos a otras funciones, y , si es necesario, recibe sus resultados. Este proceso se denomina "llamada", una funcin "llama" a otra funcin, esta puede "llamar" a otras, etc. Los valores que se envan para ser procesados, se denominan "parmetros".


Para indicar a Gambas el inicio de una funcin, emplearemos bsicamente esta nomenclatura:




PUBLIC FUNCTION nombre_de_la_funcion (p1 As TipoDato,p2 As TipoDato...) As TipoDato o bien PUBLIC SUB nombre_de_la_funcion (p1 As TipoDato,p2 As TipoDato...)


Respecto a la palabra "PUBLIC", no nos preocuparemos por ahora, pero observa que podemos indicar "FUNCTION" o "SUB". La primera palabra significa que el cdigo de la funcin va a retornar algn valor, mientras que "SUB" significa que se trata de una funcin que no retornar ningun valor, como fue el ejemplo de nuestro segundo tutorial∞, donde emitamos un mensaje, pero no retornabamos ningn valor.


nombre_de_funcion : Es el nombre con que llamaremos a la funcin desde otras partes del cdigo, y ser un identificador nico para ese fragmento de cdigo en todo el programa.


(p1 As TipoDato,p2 As TipoDato...) : A continuacin, se indican las variables que se pasarn como parmetros, separadas por comas, e indicando el tipo de la variable, del mismo modo que en las declaraciones antes explicadas. Segn lo que vaya a hacer la funcin emplearemos ms o menos parmetros.


As TipoDato : Si hemos indicado la palabra clave "FUNCTION", indicaremos al final el tipo de dato que vamos a devolver. Dependiendo del tipo de parmetros que utilicemos, estos pueden tambien utilizarse en ocasiones para devolver el resultado deseado, al margen de este valor retornado.


Unos ejemplos:




Una funcin que no devuelve ningn valor y no necesita parmetros: PUBLIC SUB MyFuncion() Una funcin que no devuelve ningn valor y necesita un valor entero como parmetro: PUBLIC SUB OtraFuncion(MiValor As Integer) Una funcin que devuelve una cadena de texto y necesita un valor entero y un valor de cadena: PUBLIC FUNCTION OtraMas(MiDato As Integer,MiCadena As String) As String

mbito


No todas las funciones y variables se utilizan desde todo el cdigo, hay varias razones para limitar las zonas desde donde se puede acceder a una variable o funcin: desde razones de rendimiento, por ejemplo, es mejor tener variables que se creen y se destruyan tras ser usadas, que tener un "monstruo" en memoria con todas las variables permanentemente almacenadas, hasta razones de comodidad para el programador, ya que es mejor poder definir el mismo nombre para ciertas variables, en zonas "aisladas" del cdigo, que tener que inventar miles de nombres a lo largo de un gran programa.


Gambas permite verias tcnicas para separar o aislar el "mbito" de las variables y funciones. Los programas escritos en Gambas, constan de "mdulos", "formularios", y "clases". Pues bien, el cdigo de cada mdulo est parcialmente aislado del cdigo de todos los dems, y de igual modo sucede con los formularios y clases. Es posible tener dos mdulos que contengan una funcin con el mismo nombre:




Mdulo 1: Public SUB MiFuncion(Dato As Integer) Mdulo 2: Public SUB MiFuncion(Dato As Integer)


Si nos encontramos dentro de otra funcin del mdulo 1, yqueremos llamar a la funcin "MiFuncion", directamente lo indicaremos as en el cdigo:




... MiFuncion(34) ...


Al llamar a "MiFuncion", el intrprete sabe que nos referimos a la funcin que se encuentra dentro del mismo mdulo. Ahora bien, si nos encontramos dentro del mdulo 2, o de cualquier otro mdulo, clase o formulario, hemos de especificar el mdulo en el que se encuentra la funcin. As, si desde el mdulo 2 indicaramos:




... Mifuncion(9654) ...


Realmente estaramos llamando a la funcin con ese nombre que se encuentra dentro del mdulo 2. Hemos de especificar que deseamos utilizar la del mdulo 1, indicando el nombre del mdulo, un punto, y el nombre de la funcin:




Modulo1.MiFuncion(9654)


La segunda tcnica para delimitar el mbito de la funcin, es indicar al intrprete si deseamos que esa funcin sea accesible desde otro mdulo, formulario o clase. Si indicamos la palabra "PUBLIC", delante de la declaracin de la funcin, esta podr ser llamada desde otros mdulos, clases o formularios, pero si indicamos "PRIVATE", slo podremos acceder desde el propio mdulo (se dice tambin que "no es visible" desde otros mdulos)


En cuanto a las variables, tenemos los mismos casos que con las funciones, y otro ms:


Las variables pueden ser declaradas al principio del mdulo, formulario o clase, antes de cualquier funcin, en este caso emplearemos las palabras "PRIVATE" y "PUBLIC" de igual modo que con las funciones, y estas variables existirn mientras exista el mdulo, clase o formulario. Pero tambin podemos indicar una variable dentro de una funcin, empleando ahora la palabra clave "DIM", y en este caso la variable slo existe desde que se entra en la funcin, hasta que se sale, y no es accesible en absoluto desde ninguna otra zona del cdigo fuera de la funcin.




PRIVATE Var1 As Integer PUBLIC Var2 As String PUBLIC FUNCTION SumaEspecial (V1 As Integer,V2 As Integer) As Integer DIM Media As Integer Media=(V1+V2)/2 RETURN Media+V1+V2 END


--------------------
Go to the top of the page
 
+Quote Post


Soy un TROLL! y encima loco...
***

Grupo: Mod
Menjsajes: 172
Points: 2,815
Registrado: --
Desde: On a dreamed city
Miembro No.: 8



Pues a lo mejor me animo y hago cualquier chorrada wink.gif xDD

P.D: Anda que yo, pensar que cuando decias: (copy paste del MSN xD)

<-._.-Choms-._.-> http://board.botmania.net | 64 Bits, 64 Threads - OpenSPARC dice:
anda y mirate el tuto de gambas

[P^3] Fraude At times, I think like Emo... =( dice:
gambas?
<-._.-Choms-._.-> http://board.botmania.net | 64 Bits, 64 Threads - OpenSPARC dice:
si, gambas

[P^3] Fraude At times, I think like Emo... =( dice:
en la vida praactica, que usos le puedo dar a gambas (a parte de alimentarme claro xDD)

------------------------

Para quien no lo sepa, gambas, se puede usar entre otras cosas para:

puedes crear formularios, botones de comandos, cuadros de texto o enlazar bases de datos como MySQL, PostgreSQL o SQLite -------- Segun se, es como Visual Basic xDD

Salu2!

P.D: Perdon por el tocho post wink.gif
Go to the top of the page
 
+Quote Post


Newbie
*

Grupo: Root Admin
Menjsajes: 48
Points: 135
Registrado: 6-November 07
Miembro No.: 29



Se ve que no se puede instalar en AMD64 porque una de sus librerias (gambas2-gb-compress-gzip, pero no estoy muy seguro) no da soporte a la arquitectura.

Me tendr que aguantar.

Se agradeceran sugerencias. Gracias.

Un saludo, a2.


--------------------
Si tuvieras que elegir entre una muerte sangrienta y otra dolorosa, cul escogeras?
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



CITA(Vipermaseg @ Nov 16 2007, 11:05 PM) *
Se ve que no se puede instalar en AMD64 porque una de sus librerias (gambas2-gb-compress-gzip, pero no estoy muy seguro) no da soporte a la arquitectura.

Me tendr que aguantar.

Se agradeceran sugerencias. Gracias.

Un saludo, a2.


Yo creo que si se puede poner... o si no pon el de la arquitectura x86 que tambien es compatible con los AMD de 64 bits (yo uso un atholon, o como se escriba, de 32 bits y Gambas me funciona) de todas maneras intentalo que tampoco pasa nada por probar. Yo tampoco le hago mucho caso a lo de las arquitecturas porque si no no instalaria nada en el portatil xD

Salu2


--------------------
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



Bueno, continuando con el tutorial...

6. Evento KeyPress


Con Gambas se puede utilizar la clase 'Key' para conocer las teclas que pulsa el usuario sobre cualquier control grfico. Cada control, posee dos eventos para indicarnos la accin del usuario:




KeyPress : se activa cuando el usuario aprieta la tecla
KeyRelease : se activa cuando el usuario suelta la tecla


Estos eventos no disponen de parmetros, ya que la clase 'Key' almacena en cada momento el cdigo de la tecla que se acaba de apretar o soltar. Es una clase esttica, por la tanto no es necesario que creemos ningn objeto de esa clase para utilizarlo:

... PUBLIC SUB Button1_KeyPress() Message.Info(Key.Code) END ...


Cuando se pulse una tecla con el foco situado sobre el botn, se mostrar un mensaje con el cdigo de la tecla pulsada. Si pulsa por ejemplo la flecha derecha, devolver el valor 4116. Con ello ya se sabe que ese cdigo corresponde a la flecha derecha. Si se desea que el evento responda slo a la pulsacin de una/s determinada/s teclas:

... PUBLIC SUB Button1_KeyPress() IF Key.Code = 4116 THEN Message("Has pulsado la tecla de flecha derecha") END IF END ...


Tambin podemos valernos de las constantes que aporta la clase "Key" para olvidarnos de los extraos cdigos numricos de cada tecla:

... PUBLIC SUB Button1_KeyRelease() IF Key.Code = Key.Right THEN Message("Has soltado la tecla de flecha derecha") END IF END ...


Por ltimo, el evento KeyPress es cancelable, de modo que podemos evitar que la pulsacin de una tecla llegue al programa, para cancelar, por ejemplo, una accin del usuario no admitida en ese momento:

... PUBLIC SUB Button1_KeyPress() IF key.Code <> key.Tab THEN STOP EVENT END ...


Se observa en el ejemplo, que se evita la cancelacin del evento cuando la tecla "Tab" es pulsada, dada la importancia de esta tecla para moverse por los formularios sin necesidad del ratn.


La clase "Key" aporta tambin los valores 'Alt', 'Code', 'Control'y 'Shift' para saber si estas teclas estaban pulsadas a la vez que la principal.


--------------------
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



7. Grupos de Controles


En otros lenguajes de programacin, como VB, se suele trabajar con grupos de controles, de forma que, por ejemplo, varios botones lancen un evento comn al ser pulsados, y dentro del evento, cada botn se distingue, en el caso de VB, con el valor "Index" que aporta el evento.


Gambas tiene su propia solucin:


1) En tiempo de diseo: Dentro del IDE, en el panel de propiedades de un objeto grfico, existe siempre una propiedad llamada "Group", que no es en s una propiedad real de dicho objeto, si no el nombre que se dar a su gestor de eventos.
Por defecto, cuando no se indica nada, el gestor de eventos se llama igual que el objeto, as, si tenemos un botn llamado "Btn1", su gestor de eventos ser "Btn1", de forma que para capturar un evento, como puede ser "Click", escribiremos el cdigo as:PUBLIC SUB Btn1_Click() ... END Sin embargo, si especificamos la pseudo-propiedad "Group", podremos indicar cualquier otro nombre, y de hecho podemos indicar el mismo nombre para mltiples controles. Si disponemos, por ejemplo, de cinco botones, y a los cinco les ponemos "Botones" como valor de "Group", capturaremos los eventos de los cinco dentro de:PUBLIC SUB Botones_Click() ... END Y cmo sabemos cual es el botn pulsado? Dentro de cada evento, se puede llamar a un objeto especial, llamado "LAST", el cual mantiene una referencia al objeto que lanz el evento. As, si indicamos PRINT LAST.Text Se mostrar en la consola el texto del botn que ha lanzado el evento. Tambin podemos emplear la propiedad "TAG" de cada botn para aadir cualquier caracterstica especfica que requiramos para diferenciarlos:SELECT CASE LAST.Tag ... ... END SELECT




2) En tiempo de ejecucin: en Gambas tenemos libertad para crear cualquier control durante la ejecucin de un programa. Si deseamos crear seis botones, y hacer que respondan a un gestor de eventos comn, lo indicaremos en la creacin del control:DIM Btn As Button ... Btn=NEW Button(ME) AS "Botones" ... De esta forma, todos los botones creados responden al gestor de eventos "Botones", y podemos, como se hizo en el primer caso, diferenciarlos por la palabra clave "LAST".
Tambin tenemos la posibilidad de almacenar una referencia a cada botn dentro de una matriz tipo "Object[]" para manejarlos desde fuera de los eventos.


--------------------
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



8. Trabajo con Eventos


La interfaz grfica ofrece una serie de eventos para modelar el comportamiento de un programa, no obstante, podemos crear nuestros propios eventos personalizados, y no slo en programas grficos, si no tambin en programas de consola, ya que la gestin de eventos de Gambas es independiente del entorno grfico, a diferencia de otros lenguajes.


Para empezar, crearemos un mdulo de clase llamado, en nuestro ejemplo, "ClsElemento". Esta clase de ejemplo, tendr un slo mtodo "Llamada()" que incrementa un contador. Una vez que el contador alcanza el valor "10", se resetea el contador, y se dispara un evento para informar de ello.


Lo primero es declarar el evento. En nuestro caso, enviar como parmerto una cadena advirtiendo que el contador vale 10:


EVENT MiEvento(Data AS String)


Tras esto, aadimos una variable privada que acta como contador:


PRIVATE Contador AS Integer


Escribimos ahora el cdigo de la funcin de llamada:


PUBLIC SUB Llamada() ' Incrementamos el contador Contador=Contador+1 IF Contador>9 THEN ' Si el valor del contador es 10 ' disparamos el evento RAISE MiEvento("Contador vale 10") ' Y reseteamos el contador Contador=0 END IF END


Finalmente, escribimos el cdigo principal del programa. Para ello cremos un formulario con un botn. Al inicio declaramos un objeto de nuestra clase:


PRIVATE MiClase AS ClsElemento


Al abrirse el formulario, creamos el objeto, declarando el "observador" de eventos entre comillas:


PUBLIC SUB Form_Open() MiClase=NEW ClsElemento AS "MiObservador" END


Aadimos al botn el cdigo para que utilize el objeto:


PUBLIC SUB Button1_Click() MiClase.Llamada () END


Y finalmente, recogemos el evento:


PUBLIC SUB MiObservador_MiEvento(Data AS String) Message.Info (Data) END


Esta funcin tiene el nombre del "observador" de eventos, un guin bajo, y el nombre del evento, por lo que ser llamada cuando se dispare el evento.

CODE
Cdigo completo de "ClsElemento":

' Gambas class file
PRIVATE Contador AS Integer EVENT MiEvento(Data AS String)
PUBLIC SUB Llamada()
Contador=Contador+1
IF Contador>9 T
HEN RAISE MiEvento("Contador vale 10")
Contador=0
END IF
END


Cdigo completo de "Form1":


PRIVATE MiClase AS ClsElemento PUBLIC SUB Button1_Click()
MiClase.Llamada ()
END PUBLIC SUB MiObservador_MiEvento(Data AS String)
Message.Info (Data)
END PUBLIC SUB Form_Open()
MiClase=NEW ClsElemento AS "MiObservador"
END


--------------------
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



9. Multiidioma


Gambas incorpora soporte nativo para crear aplicaciones que se distribuyan entre usuarios que hablan idiomas distintos. Un proyecto ha de ser marcado como "Traducible" para que esto sea posible.

1. En una nueva aplicacin
Crea un nuevo proyecto grfico con Gambas y detente en el punto donde se solicita el nombre del proyecto. Observars que puedes marcar un "check" que indica que el proyecto es traducible. Mrcala.


El proyecto gestionar de forma automtica los textos a partir de ese momento.

2. En una aplicacin ya existente
Acude al men "Proyecto" y dentro de este pulsa "Propiedades".

En el asistente de propiedades del proyecto, acude a la pestaa "Traduccin" y marca la opcin "El proyecto es traducible". Acepta los cambios.


3. Trabajo con aplicaciones "traducibles"
Todos los textos de la interfaz grfica, se gestionan de forma automtica, de modo que al acudir al gestor de traducciones, los encontrars disponibles tras cualquier cambio o adicin en la intefaz.

En cuanto a los textos del programa, hemos de indicar explcitamente que deseamos tenerlos disponibles para su traduccin, ya que podra tratarse de textos que no se deben traducir, como, por ejemplo, cadenas SQL, o etiquetas de XML. Si en un cdigo no traducible, indicamos las cadenas como en este ejemplo:

PUBLIC SUB Button1_Click()

Message.Info ("Hola Mundo")

END

En el caso de un texto ha traducir, hemos de delimitar la cadena textual con signos de parntesis:

PUBLIC SUB Button1_Click()

Message.Info ( ("Hola Mundo") )

END

El compilador sabe distinguir automticamente entre los parentesis que corresponden al mtodo, y los referidos a la cadena.

Por ltimo, ten en cuenta que hay signos especiales o "de escape" en Gambas; as, por ejemplo, el smbolo " & " se utiliza para indicar en la interfaz grfica, que esa tecla ser el atajo de teclado para acceder al men o botn, por ejemplo. Otros smbolos tienen significado similar al que tienen en C o algunas shells, como es el caso de "\n" (retorno de carro). el gestor de traducciones, es capaz de comprobar la coherencia de caracteres especiales escritos en la versin original, y en la traduccin.


--------------------
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



10. Proceso de Traduccin


Vamos a tomar como ejemplo el propio entorno de desarrollo Gambas. Cuando descargamos una versin de Gambas en paquete fuente, y descomprimimos el paquete tar.bz2, se genera una carpeta llamada gambas-X.XX (X.XX depende de la versin). Dentro de esta carpeta, hay dos subcarpetas:
app/gambas : contiene el propio entorno de desarrollo.
app/gambas-database-manager : contiene el gestor de bases de datos.
Pues bien, ejecutemos Gambas, indiquemos "Abrir proyecto", busquemos la carpeta gambas-X.XX/app/gambas, y abramos este proyecto. A continuacin, acudamos al men "Proyecto", seleccionando la opcin "Traducir".




Una vez seleccionada la opcin, entramos en el asistente de traduccin. Hemos de elegir el idioma que deseamos traducir. Si ya habamos trabajado previamente en ella, aparecern los textos sin traducir, as como los ya traducidos. Todas las cadenas sin traducir, as como las introducidas con posterioridad a la ltima fase de traducciones, aparecern con la traduccin en blanco.




Cada vez que pulsamos con el botn izquierdo en una de las cadenas en la primera lista, en las listas inferiores se nos muestra la cadena original, y en la parte inferior disponemos de la caja de texto para escribir la traduccin correspondiente. Cuando cambiamos a otra cadena, la que habamos editado queda guardada durante esta sesin (es necesario pulsar "Guardar traduccin" para que quede guardado permanentemente).
El resto de las opciones son las siguientes:

  • Guardar traduccin : los cambios realizados en esta sesin, se guardan y quedan disponibles para los usuarios del programa en ese idioma.
  • Recargar traduccin : se borran todos los cambios realizados en la ltima sesin, y se vuelve al estado anterior.
  • Borrar traduccin : elimina todos los textos traducidos.
  • Duplicar una traduccin : hace una copia de la traduccin que haba en otro idioma, de modo que nos sirva como base para el idioma a traducir. Puede ser til, por ejemplo, para hacer una traduccin en "Espaol (variante Argentina)", basada en la original "Espaol (variante Espaa)". Lo mismo ocurre con el Francs de Blgica o Canad respecto al de Francia, que puede llegar a ser confuso segn la nacionalidad del usuario, si no se realizan adaptaciones.
  • Exportar una traduccin : convierte la traduccin en un fichero estndar tipo ".po", usado por la mayora de los programas escritos en C y C++ sobre GNU/Linux, FreeBSD y software libre para otros sistemas operativos. este formato permite enviar la traduccin realizada a otras personas, en un sistema de desarrollo donde se trabaje en diferentes lugares. Este es el caso de Gambas: una vez escrita la traduccin, se exporta a formato .po, y se enva a la lista de desarrollo de Gambas.
  • Importar una traduccin : proceso inverso al anterior. El coordinador recibe un fichero ".po", y lo absorve para incorporarlo a la versin de programa.
  • Verificar traduccin : imprescindible antes de dar por buena una nueva versin, comprueba que todos los smbolos especiales (por ejemplo '&') coinciden entre los textos originales y los traducidos. No debe utilizarse, ni exportarse nunca, una traduccin en la cual el verificador da un mensaje de error.
  • Buscar la siguiente cadena no traducida : nos dirige directamente a la siguiente cadena pendiente de traducir desde la anterior traduccin, de modo que sea ms fcil traducir conforme se incorporan nuevas cadenas al programa.
Y con esto y un bizcocho, se acab el tutorial Bsico de gambas, espero que os sea til wink.gif

Salu2
Choms


--------------------
Go to the top of the page
 
+Quote Post


Newbie
*

Grupo: Members
Menjsajes: 1
Points: 5
Registrado: 28-December 07
Miembro No.: 50



laugh.gif wink.gif Esto todo muy bueno!! pero mellow.gif si quiero instalar en otra computadora. como se hace? sad.gif
como se crea el instalador del proyecto creado?
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



no se si te entiendo... te refieres a compilarlo como ejecutable o a crear un instalador tipo install shield?

a lo primero sencillo, supongo yo que el gambas traer compilador de serie
a lo segundo te tienes que buscar un programa que te haga los instaladores (yo antes usaba uno muy bueno para windows que se llama Inno Setup)

De todas maneras te miro mejor lo primero y luego te concreto

Salu2


--------------------
Go to the top of the page
 
+Quote Post


Dios Supremo del Foro
**

Grupo: Members
Menjsajes: 69
Points: 1,017,212
Registrado: --
Desde: Delante del ordenador
Miembro No.: 24



Me acabo de poner linux, y como comprenderis no conozco mucho el tema todava, pero como hace poco me puse a hacer cosas con el Visual Basic y me gust bastante, pues me gustara ponerme el gambas que parece ser igual. Alguien sabe como me lo puedo bajar del sinaptic?
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



El Synaptic tiene un boton de busqueda, ahi buscas el programa que quieras instalar y te saldr una lista, seleccionas el que quieres, le das a aplicar, y ya est wink.gif


--------------------
Go to the top of the page
 
+Quote Post


Dios Supremo del Foro
**

Grupo: Members
Menjsajes: 69
Points: 1,017,212
Registrado: --
Desde: Delante del ordenador
Miembro No.: 24



Ya lo hice i tecleando gambas no me salio, es un problema de mi linux o es que he de teclear otra cosa?
Go to the top of the page
 
+Quote Post


Maestro
****

Grupo: Root Admin
Menjsajes: 328
Points: 695
Registrado: --
Desde: Por ahi ando...
Miembro No.: 9



que distro usas? por lo general tendria que estar el gambas, en todas las distros que he usado tenia gambas...


--------------------
Go to the top of the page
 
+Quote Post


Dios Supremo del Foro
**

Grupo: Members
Menjsajes: 69
Points: 1,017,212
Registrado: --
Desde: Delante del ordenador
Miembro No.: 24



Uso ubuntu... Aunque tambien me pasa que no me actualiza, es como si ya estuviesse actualizado y lleva un tiempo asi...
Go to the top of the page
 
+Quote Post

2 Páginas: V   1 2 >
Reply to this topicStart new topic
1 usuario(s) está(n) leyendo esta discusión (1 invitado(s) y 0 usuario(s) anónimo(s))
0 miembro(s):

 



Versión Lo-Fi Fecha y Hora actual: 6th July 2009 - 05:09 AM