lunes, 13 de abril de 2009

Capturar una tecla en GamBAS

Al igual que en visual basic usabamos la opcion KeyAscii, en GamBAS se ha de utilizar Key.Code

ejemplo:

if key.code = 13 then
Message.info("has pulsado intro")
end if

Reproducir MP3 en Amarok

Para poder reproducir archivos en mp3 bajo amarok u opensuse 11.x deberemos de ir a YAST, instalar software y buscaremos amarok-xine

Una vez instalado los componentes abriremos el amarok y en opciones seleccionaremos la opcion "motor" y seleccionaremos XINE

tambien buscaremos las siguientes librerias:
libmad0
libxine1
gstreamer0.8-mad

viernes, 10 de abril de 2009

opensuse 11.1 repositorio de packman

Repositorio de packman para opensuse 11.1

http://packman.mirrors.skynet.be/pub/packman/suse/11.1/Packman.repo

Más info aqui:

http://opensuse-community.org/Repositories/Packman

martes, 7 de abril de 2009

Msgbox en gambas

en visualbasic podiamos usar msgbox("mesnaje", vbyesno)

vbyesno no se puede usar en gambas por lo que la secuencia correcta seria:

DIM msgBorrar AS Integer

msgBorrar = Message.Question("¿Desea eliminar el registro seleccionado?", "Si", "No")

Asi pues, si el usuario presiona SI, la variable msgBorrar valdrá 1, y al presionar NO, la variable msgBorrar valdrá 2.

domingo, 22 de marzo de 2009

acceso a MySQL desde Gambas

Bueno yo lo que hago es que lea un ficherito XML con la configuración básica (Servidor, base de datos, usuario y contraseña) Pero veamos el ejemplo:

Necesitamos:
Un modulo,(lo llamaremos: mimodulito
Un boton: botoncito1
y un usuario que pulse el botón

Veamos el código para el modulo mimodulito

===============[code="mimodulito"]===============
PUBLIC DBserver AS String
PUBLIC DBuser AS String
PUBLIC DBpassword AS String
PUBLIC DBsql AS String

PUBLIC $Con AS NEW Connection

PUBLIC PROCEDURE Connect()

$Con.Type = "MySQL" ' Type of connection
$Con.Host = mimodulito.DBserver ' Name of the server"
$Con.Login = mimodulito.DBuser ' User's name for the connection
$Con.Name = mimodulito.DBsql ' Name of the data base we want to use
$Con.Password = mimodulito.DBpassword ' User's password
END

===============[/code]===============

Os habreis fijado que previamente he creado unas variables, estas, al estar en un modulo permiten que esten visibles desde todos los formularios, de esa forma cuando cargo la aplicacion lo primero que hago es leer un xml (esto ya lo comentare otro dia) de ahi se obtiene los datos principales y despues se pasan en el codigo PUBLIC PROCEDURE Connect()

Ahora si queremos conectarnos a la base de datos usaremos el siguiente comando: (desde cualquier formulario, en mi caso lo uso al iniciar la aplicación y despues de leer correctamente el archivo xml:

===============[code="en un formulario"]===============

mimodulito.Connect()
TRY mimodulito.$Con.Open()
IF ERROR THEN
Message.Error("No ha sido posible conectar con la base de datos")
Button1.Enabled = FALSE
ENDIF
===============[/code]===============

Fijaros que con TRY lo que hago es controlar el error de conexión a la base de datos, esto lo hago por si no tenemos exito a la hora de conectarnos a la base de datos pero realmente donde activamos la conexión es:

1º Llamamos a nuestro modulo
mimodulito.Connect()

2º Abrimos la conexion con la base de datos (si ponemos TRY podemos controlar si nos da un error)
mimodulito.$Con.Open()

Ahora un ejemplo sencillo de hacer un select y mostrar un resultado en un message box (en VB6 msgbox)

===============[code="en un boton de un formulario"]===============
PUBLIC SUB Button1_Click()

DIM $Query AS String
DIM $Result AS Result



mimodulito.Connect()

$Query = "select * from usuarios where Login = '" & txtlogin.Text & "'"
$Result = mimodulito.$Con.Exec($Query)

IF $Result.Count = 1 THEN

IF UCase($Result!Login) = UCase(txtlogin.Text) THEN

IF ($Result!Password) = txtpassword.Text THEN
AQUI PONEMOS EL CODIGO SI USUARIO Y CONTRASEÑA COINCIDEN
ELSE
Message.Info("contraseña no valida")
END IF
END IF
ELSE
Message("No se ha encontrado el usuario")
END IF

END
===============[/code]===============

txtlogin y txtpassword son dos recuadros de texto :D

Bueno espero que os sirva mi ayuda.

¡Ah! Se me olvidaba, cuando finalicemos nuestra aplicación deberemos de añadir la siguiente linea para desconectarnos de la base de datos:

===============[code="para finalizar"]===============
mimodulito.$Con.CLOSE()
===============[/code]===============

sábado, 21 de marzo de 2009

Alternativa a citrix para linux

Una alternativa muy buena como alternativa a citrix pero para linux es NX Server de http://www.nomachine.com/

Por cierto lo ideal es el cliente para windows ya que podras hacer funcionar aplicaciones de Linux en windows