Páginas

viernes, 10 de agosto de 2012

Gambas3: Libreria Conio para aplicaciones de consola

Con gambas también se pueden hacer aplicaciones para consola, como ya sabreis...

Actualmente se esta desarrollando un componente para exportar  ncurses a gambas3, supongo que saldrán en las próximas versiones (ya hay un ejemplo de su uso en http://willicab.gnu.org.ve/componente-ncurses-en-gambas-3/ usando las versión SVN)

Yo he creado un pequeño modulo, llamando conio (como  la antigua conio.h de C), con algunas funciones:


clrscr()  'Borrado de la pantalla de la consola
clreol() 'Borra desde la posición del cursor hasta el final de la línea
gotoxy(x As Integer, y As Integer) 'colocar el cursor en la posicion x,y
textcolor(color As Integer)  'colorear el texto de la fuente
textbackground(color As Integer)  'colorear el fondo del texto que escribamos

Ademas de tener varias variables públicas para los colores:

BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN,LIGHTGRAY,DARKGRAY, LIGHTBLUE , LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE, BLINK

Os dejo aqui un ejemplo de codigo de un programa:



' Gambas module file

Public Sub Main()

Dim menu As New ClassCaja
Dim valor As String
'Ejemplo de uso...
Conio.clrscr()
Conio.gotoxy(30, 12)
Print "hola"
Conio.gotoxy(20, 7)
Print "Adios"

Conio.textcolor(Conio.BLUE)
Conio.gotoxy(10, 16)
Print "Azul"

Conio.textbackground(Conio.red)
Conio.gotoxy(1, 17)
Print "Fondo Rojo letra Azul"

'primero definir el color de la letra,
'segundo definir el color de fondo..
Conio.textcolor(Conio.MAGENTA)
Conio.textbackground(Conio.GREEN)

Conio.gotoxy(30, 17)
Print "Fondo Verde"

menu.opciones.Add("1. Abrir")
menu.opciones.Add("2. Guardar")
menu.opciones.Add("3. Salir")
menu.colorfondo = Conio.blue
menu.colorletra = Conio.WHITE
menu.x = 30
menu.y = 5
menu.escribe

'Input
Conio.textcolor(Conio.MAGENTA)
Conio.textbackground(Conio.LIGHTCYAN)
Conio.gotoxy(1, 25)
Print "Introduce el valor: "
Input valor
Print "valor escogido es el "; valor

End


El resultado en la consola es este:

Os dejo aqui el código fuente del programa completo para que veais el módulo conio y la clase ClassCaja

https://www.box.com/s/0283c9f82eeb8bbe19a4


Saludos...