domingo, 3 de junio de 2012

Ejemplo con tipos de datos


En este ejemplo según el tipo de datos que contenga la variable datos,
nos devolverá que tipo de variable es.

 Vamos a usar el procedimiento principal ya sea
  1. Form_Load() o PUBLIC SUB Main()
  2. Un procedimiento para que nos muestre que tipo es
  3. Una función para que nos muestre una frase y no tengamos que escribirla varias veces

---código---

'Ejemplo con tipos de datos

Public Sub Form_Open()
    
Dim dato As Variant 'Almacenara cualquier tipo de datos.

'Almacenamos un tipo de valor en la variable con "identificador" dato
dato = 34
TipoDato(dato)

'¿Que tipo de variable es dato ?".Creamos un procedimiento que nos lo diga
'Le pasamos al procedimiento TipoDato el contenido de la variable dato
'y nos muestre que tipo es.
'Continuamos

dato = "Casa"
TipoDato(dato)
dato = 12.67
TipoDato(dato)
dato = 145674356274
TipoDato(dato)
dato = False
TipoDato(dato)
dato = Null
TipoDato(dato) 'El no conoce el tipo Nulo. No lo hemos incluido.

End

Public Sub TipoDato(valor As Variant)

Select Case TypeOf(valor)
    Case gb.Boolean
          Print frase() & "boolean." 'No muestra bien,verdadero o falso
    Case gb.Integer
          Print valor & frase() & "entero."
    Case gb.Long
          Print valor & frase() & "long"
    Case gb.Float
          Print valor & frase() & "float"
    Case gb.String
          Print valor & frase() & "string"
    Case Else
          Print "No se que tipo es"
End Select
'Lógicamente existen más tipos de datos
Print 'Dejamos un espacio en blanco cada vez que muestra un dato

End

Public Function frase() As String
      Return " es del tipo " 'Ejemplo de función que nos devuelve una frase
End

---código----

Como habéis observado no hemos pasado un valor o parámetro
a la función.Tan solo ha devuelto un valor al llamarla.
 
Para saber el tipo de datos hemos usado la función TypeOf que nos
devuelve un valor que es una “constante”.Tenemos también valores
que usa el propio Gambas que son constantes predefinidas.

gb.Boolean
gb.Integer
gb.Long

etc.

Mas información en:






sábado, 2 de junio de 2012

Ejemplo de dibujo en el componente DrawingArea

Este fue el primer ejemplo que subí a la comunidad de Gambas.
Aunque las imágenes que veis es para la primera versión.
Es un poco avanzado para un comienzo.Es solo un ejemplo
para que veáis un código.





En esta versión para Gambas3 podéis usar  los controles de
deslizamiento e ir cambiando el numero de circunferencias,
el radio de estas y  el radio principal.

Flor de Circunferencias 2

Y esto realmente no es nada comparado con todo lo que podéis hacer
con Gambas. Es el resultado de la matemática y la programación.
El uso de formulas y la rapidez de calculo de un ordenador en
un programa.

El limite es vuestra imaginación y necesidad. :-)

Las Colecciones


¿ Que son las colecciones ?.

Las colecciones son como los arrays con la ventaja de que es mas fácil
acceder al contenido de los datos.

En un array tenemos un índice que mediante el uso de “bucles” 
buscamos un valor. O conocer el índice directamente.Cosa nada fácil.

La ventaja de la colección es que esta disponen de un valor y una clave.
Se usan también cuando trabajamos con objetos. Una colección de formularios,
de un tipo de componente,etc.

Como en el ejemplo de las ciudades y las temperaturas.
En una colección para conocer la temperatura de una de las ciudades 
solo tenemos que darles el valor de la clave. En este caso, el nombre 
de la ciudad.

¿ Como usamos las colecciones ?.

Declaramos la variable con el tipo COLLECTION

DIM | PRIVATE | PUBLIC Temperaturas AS NEW COLLECTION

He usado “ | “ para que tu decidas el ámbito de la variable.
Si es local usaras DIM
Si es publica usaras PUBLIC
Si es común a todo un modulo usaras PRIVATE

Coleccion.Add valor,clave

El tipo de datos que tiene valor es del tipo VARIANT.



Continuamos. Ahora añadimos un valor y la clave.

Temperaturas.add 20,”Cádiz”

20 sera el valor que almacenara y la cadena “Cádiz” sera la clave.
Si podemos añadir otras más.

Temperaturas.add 25,”Sevilla”
Temperaturas.add 27,”Málaga”
Temperaturas.add 26,”Córdoba”

Bien. Ahora supongamos que queremos saber la temperatura en Málaga
¿ Como lo hacemos ?.

Ejemplo:

Mostrar Temperaturas[“Málaga”]

PRINT Temperaturas[“Málaga”]

y obtenemos 27

¿ Como sabemos cuantos elementos forman nuestra colección ?.

PRINT Temperaturas.count

¿ Como podemos eliminar un elemento de la colección ?.

Usaremos el “Método” REMOVE

Si queremos eliminar el elemento que nos dice la temperatura en Córdoba

La mas fácil. Sabemos cual es la clave “Córdoba”,así que.

Temperaturas.Remove “Córdoba”

Ahora intentar ver si existe.

PRINT Temperaturas[“Córdoba”]

Como veis no hay resultado. Si ahora vemos el número de elementos en la colección.

PRINT Temperaturas.count

Ha cambiado.

---código---
PUBLIC SUB Form_Open()
DIM Temperaturas AS NEW Collection

Temperaturas.Add(36, "Bilbao")
Temperaturas.Add(41, "Cáceres")
Temperaturas.Add(35, "Ciudad Real")
Temperaturas.Add(27, "La Coruña")

PRINT Temperaturas["Bilbao"]
PRINT Temperaturas.Count
Temperaturas.Remove("Cáceres")

PRINT Temperaturas["Cáceres"]
PRINT Temperaturas.Count

END
---código----

Mas información en:
En español:


En inglés:


Como observareis la documentación en inglés suele ser mas extensa en la mayoría de los casos.