En este ejemplo no he utilizado imágenes.
- Veremos como se hace una búsqueda en un array, con el método .Find
Aprovechando para mostrar y borrar un registro o
elemento del ListView.
- Como hacemos un grupo de instrucciones sobre una variable.
- Como eliminar y añadir elementos a un ListView
En esta aplicación de ejemplo tenemos los datos de identidad,nombre y apellidos de un ciudadano.
En la lista se añade su numero de identidad.Si lo seleccionamos podemos ver
en las cajas de texto los datos.También pueden ser eliminados de la lista.
El código esta documentado ,no lo he añadido aquí ya que los comentarios
deforman un poco la presentación al ser largos.
Podéis bajar el código aquí:
lunes, 16 de julio de 2012
domingo, 15 de julio de 2012
Componente ListView
Este componente es muy parecido a
ListBox con la posibilidad de poder añadir
un icono al texto de cada elemento.
Cada elemento que añadimos consta de
una clave “key” que es única por cada elemento
de la lista, no se repite.
Para la selección de componente en vez
de la propiedad “Index”.Usamos
“Item”.
Con Item podemos averiguar su texto y
su imagen.
Hay que practicar para conocer este
componente si estamos acostumbrado a ListBox. No entraña mucha dificultad y si
mejoras.
He creado este ejemplo, con banderas
marítimas internacionales para señales.
Donde podéis ver como se añade la
clave, su nombre y si queremos una imagen.
Aquí podéis bajar el ejemplo.
Y aquí encontrareis mas información.
Componente ListBox
Este componente presenta una lista de
elementos seleccionables.
Al hacer click en uno de los elementos
su índice es almacenado en la
propiedad .Index.
La propiedad .Current nos ofrece la
posibilidad de conocer del
elemento actual seleccionado,su texto o
si ha sido seleccionado un
elemento en concreto.
Lista.Current.Text
Lista.Current.Selected
Listbox es igual que un array de
elementos.
Posee propiedades para conocer cuantos
elementos tiene la lista, como la
propiedad .Count.
No debemos olvidar nunca que siempre el
primer elemento en un array es 0.
Así que la propiedad .Count puede
decirnos que tenemos un elemento, pero
su propiedad .Index al seleccionar este
elemento es 0.
Al igual que teníamos un array:
aAmigos[1]
Con la propiedad Lista.List[1] hacemos
la misma función con
nuestro componente ListBox.
Cuando no hemos seleccionado ningún
elemento de la lista la propiedad
Index es -1
Tenemos métodos para ordenar nuestra
Lista y de hacer búsquedas en ella.
Usamos siempre el método .Add para
añadir elementos a nuestra lista.
Aquí tenéis un ejemplo para ver el funcionamiento básico
de este componente.
He utilizado el recurso que nos ofrece
el componente de alineación Vbox, para
que tanto la caja de texto y los
botones queden alineados.
El código es simple. ;-)
----código---
' Gambas class file
Public Sub _new()
End
Public Sub Form_Open()
Me.Title = "Ejemplo con ListBox"
Me.Center()
End
Public Sub btnInsertar_Click()
If txtEntrada.Text = ""
Then 'Si no escribimos nada nos lo dice
Message.Info("Debes escribir
algo")
Else
lstLista.Add(txtEntrada.text)
'Añadimos el contenido de la caja de texto a la
lista
lblSalida.Text = (txtEntrada.Text &
" fue añadido a la lista")
txtEntrada.text = ""
Endif
txtEntrada.SetFocus
End
Public Sub btnLimpiarLista_Click()
lstLista.Clear
lblSalida.Text = "La lista fue
borrada"
End
Public Sub btnEliminar_Click()
If lstLista.Index >= 0 Then
'Si se ha seleccionado algún elemento.
lblSalida.Text =
lstLista.Current.Text & " fue eliminado"
lstLista.Remove(lstLista.Index)
Else
If lstLista.Index = -1 Then
Message.Warning("Debe
seleccionar algún elemento de la lista")
Endif
Endif
End
Public Sub lstLista_Select()
If lstLista.Index <> -1 Then
'Si se ha seleccionado algún elemento.Otra manera de
hacerlo.
lblSalida.Text =
Trim(lstLista.Current.Text) & " fue seleccionado"
Endif
End
Public Sub btnSalir_Click()
Me.Close
End
Public Sub btnInsertar_Enter()
btnInsertar.Font.bold = True
'Cuando el cursor este dentro del botón cambia el estilo de su
fuente a negrita
End
Public Sub btnInsertar_Leave()
btnInsertar.Font.Bold = False
'Cuando el cursor este fuera del botón cambia el estilo de su fuente
a normal
End
---código---
Si os fijáis en los botones debajo de
algunas letras existe un guión bajo. Este guión permite el uso de un acceso rápido al botón
en cuestión.
Usamos la combinación de las teclas
Alt + la letra para hacer lo
mismo que si hiciéramos click con el ratón en el botón.
mismo que si hiciéramos click con el ratón en el botón.
¿ Cómo podemos hacer esto con
nuestros botones de comando ?.
Vamos a la propiedad texto del botón
y cerca de la letra que queremos
usar, añadirnos el carácter “&”,
que conocemos como Ampersand.
No debemos repetir los mismos
caracteres para usar los botones desde teclado
por que puede que el programa no
responda como quisiéramos.
Aquí tenéis el ejemplo con su código.
Ejemplo de Listbox
Podéis encontrar mas información en:
En GambasDoc
Aquí tenéis el ejemplo con su código.
Ejemplo de Listbox
Podéis encontrar mas información en:
En GambasDoc
martes, 10 de julio de 2012
Paso de parámetros por valor o por referencia.
Cuando queremos pasar un parámetro a
un procedimiento,podemos hacerlo de dos maneras. La manera habitual
de saber como se pasan los parámetros es fijarnos en el
procedimiento o función que recibe el parámetro
Imaginar una rejilla, en la que hay
celdas que contienen nuestras variables.
Cada celda es una dirección en la
memoria de nuestro ordenador, con
un contenido con valor o vacío
Por valor:
Cuando pasamos por valor una variable a
un procedimiento,no pasamos la
variable original,pasamos una copia de
esta.(No sería la celda original).
La ventaja es que si dentro del
procedimiento se cambiase el valor de la variable,al salir del procedimiento, nuestra
variable contendrá su valor inicial.
En Gambas1 y Gambas2 solo era posible
pasar parámetros por valor.
----código----
PUBLIC SUB Form_Open()
Dim sNombre AS String
sNombre=”Jose Luis”
'Llamamos al procedimiento, pasándole
como parámetro la variable sNombre
VerNombre(sNombre)
'Al salir del procedimiento ,mostramos
el valor de la variable sNombre,
'comprobando que no ha cambiado.
Message.info(“El valor del nombre
es: “ & sNombre)
End
PUBLIC SUB VerNombre(sNom AS STRING)
'Vemos su valor original.
Message.info( “El valor original del
parámetro es: “ & sNom)
'Cambiamos su valor y lo mostramos.
sNom=”Jose María”
Message.info(“El valor del parámetro
se cambia a: “ & SNom)
END
---código---
No olvidéis cambiar el tipo de
comillas al pegarlo en el editor de Gambas. ;-)
Por referencia:
Cuando pasamos un
parámetro por referencia,estamos pasando el contenido
de la celda de
memoria donde se encuentra el valor de nuestra variable.
Así que el
procedimiento no manejara una copia de nuestra variable,
sino la variable
original.
En la versión de
Gambas3 podemos usar el paso de parámetros por referencia.
Para ello, debemos
usar en la llamada al procedimiento la palabra ByRef
Y también debemos
incluirla dentro de los parámetros del procedimiento
al que llamamos.
---código---
PUBLIC SUB Form_Open()
Dim sNombre AS String
sNombre=”Jose Luis”
'Llamamos al procedimiento, pasándole
como parámetro la variable sNombre
VerNombre(ByRef sNombre)
'Al salir del procedimiento ,mostramos
el valor de la variable sNombre,
'comprobando que ha cambiado.
Message.info(“El valor del nombre
es: “ & sNombre)
End
PUBLIC SUB VerNombre(ByRef sNom AS
STRING)
'Vemos su valor original.
Message.info( “El valor original del
parámetro es: “ & sNom)
'Cambiamos su valor y lo mostramos.
sNom=”Jose María”
Message.info(“El valor del parámetro
se cambia a: “ & SNom)
END
---código---
Otro ejemplo
usando paso de parámetro por referencia.
No dividir por
cero o dará error. ;-)
---código---
'Algoritmo que
calcula el cociente y el resto de la división haciendo que estos
resultados
'sean devueltos al
algoritmo principal
Public Sub
Form_Open()
Dim dividendo,
divisor, cociente, resto As Integer
dividendo =
InputBox("Ingrese el valor del dividendo")
divisor =
InputBox("Ingrese el valor del divisor")
division(dividendo,
divisor, ByRef cociente, ByRef resto)
Message.Info("Cociente:
" & cociente & "\n" & "Resto: "
& resto)
End
'Cabecera:
division(Entrada divi,Entrada d,Salida c,Salida r)
'Precondición:
dividendo >= divisor y ambos son mayores que 0
'Postcondición:
devuelve a través de los parámetros de salida c y r, el cociente y
el resto.
Public Sub
division(divi As Integer, d As Integer, ByRef c As Integer, ByRef r
As Integer) As Integer
c = divi Div d
r = divi Mod d
End
---código---
Como veis en la función división, tenemos paso por valor y referencia.
Espero que les sea útil.
sábado, 7 de julio de 2012
Antigua presentación de Gambas en 2006
Podéis ver el pdf adjunto que era la idea principal de
este proyecto de presentación.
Esta en inglés.
Presentación de Gambas en 2006
jueves, 28 de junio de 2012
Diapositivas sobre Gambas
Hola!.
Encontré estas diapositivas sobre Gambas.
Aunque son para versiones algo más antiguas, explican información
que puede ser interesante para todos sobre nuestro entorno favorito
de programación.
Diapositivas 1
Diapositivas 2
Diapositivas 3
Referencia:
Portal educativo Extremeño
Encontré estas diapositivas sobre Gambas.
Aunque son para versiones algo más antiguas, explican información
que puede ser interesante para todos sobre nuestro entorno favorito
de programación.
Diapositivas 1
Diapositivas 2
Diapositivas 3
Referencia:
Portal educativo Extremeño
martes, 19 de junio de 2012
Cómo funcionan los controles de alineación
En este ejemplo veréis como funcionan los controles de alineación:
Estos controles son contenedores y permiten alinear sus objetos
o componentes que están dentro de el. Ya sea verticalmente
u horizontalmente.
Tenemos propiedades como Padding que le dice cuanto es la separación
en pixels entre componentes (hijos) de su contenedor (el control de alineación).
En el ejemplo debemos seleccionar uno de los 4 tipos y luego
seleccionar las imágenes, que irán llenando "de una forma"
típica de cada control de alineación.Podréis llenar
cada contenedor hasta un máximo que os avisara.
EjemploControlesAlineación
Buscar estos componentes en:
GambasDoc
También encontrareis información en el manual de Gambas:
Alineación de controles en la pagina 114
- Hbox
- Vbox
- HPanel
- VPanel
Estos controles son contenedores y permiten alinear sus objetos
o componentes que están dentro de el. Ya sea verticalmente
u horizontalmente.
Tenemos propiedades como Padding que le dice cuanto es la separación
en pixels entre componentes (hijos) de su contenedor (el control de alineación).
En el ejemplo debemos seleccionar uno de los 4 tipos y luego
seleccionar las imágenes, que irán llenando "de una forma"
típica de cada control de alineación.Podréis llenar
cada contenedor hasta un máximo que os avisara.
EjemploControlesAlineación
Buscar estos componentes en:
GambasDoc
También encontrareis información en el manual de Gambas:
Alineación de controles en la pagina 114
Suscribirse a:
Entradas (Atom)


