sábado, 28 de marzo de 2015

ArmadoHTML

Buenas gente, aquí les traigo una pequeña idea que nos ayudara en el armado de reportes Html

solo hice lo básico pero este programa podría hacer cosas mas complejas.


' gambas class file

' by postapase

Public Sub Form_Open()
Me.Center
End

Public Sub Button1_Click()
Dim RutaArchivoX As String
Dim ArchivoX As File
Dim LineaX As String
Dim VariableX As String
Dim PrimeraLinea As Boolean = True

VariableX = txtVariable.Text & " &= "
Dialog.Path = User.Home
Dialog.Filter = ["*.html", "Documentos"]

If Dialog.OpenFile() Then Return

RutaArchivoX = Dialog.Path
txtRutaHtml.Text = Dialog.Path

ArchivoX = Open RutaArchivoX For Read

While Not Eof(ArchivoX)
Line Input #ArchivoX, LineaX

If PrimeraLinea = True Then
txtAcuerpo.Text &= txtVariable.Text & " = " & LineaX & gb.NewLine
PrimeraLinea = False
Else
txtAcuerpo.Text &= VariableX & LineaX & gb.NewLine
Endif

Wend

Close ArchivoX

End

Public Sub btnCopiar_Click()
txtAcuerpo.SelectAll
txtAcuerpo.Copy()
End

 Código fuente: http://www.gambas-es.org/download.php?id=555

lunes, 23 de marzo de 2015

TextLabel



La clase TextLabel nos permite usar texto enriquecido por medio de algunas etiquetas html.

TextLabel1.Text = "<b>Texto en negrita</b>"
TextLabel1.Text = "<i>Texto en cursiva</i>"
TextLabel1.Text = "<s>Texto tachado</s>
TextLabel1.Text = "<u>Texto subrayado</u>"

TextLabel1.Text = "<b>Texto en negrita y salto de linea</b><br>"


TextLabel1.Text = "<b><i>Texto en cursiva y en negrita</i></b>"




TextLabel1.Text = "<sub>Texto subindice</sub>Texto normal<sup>Texto superindice</sup>"

TextLabel1.Text = "<font color=\"green\">Texto de color verde</font><br>"
TextLabel1.Text &= "<font color=\"red\">Texto de color rojo</font><br>"
TextLabel1.Text &= "<font color=\"blue\">Texto de color azul</font>"



TextLabel1.Text = "<H1>Encabezado H1</H1><br><H2>Encabezado H2</H2><br><H3>Encabezado H3</H3>"


TextLabel1.Text &= "<big>Texto grande</big><br>"
TextLabel1.Text &= "<small>Texto pequeño</small><br>"
TextLabel1.Text &= "<big><big>Texto muy grande</big></big><br>"
TextLabel1.Text &= "<small><small>Texto muy pequeño</small></small><br>"

TextLabel1.Text = "<font color=\"green\">Texto de <font color=\"red\">" & VariableX & "</font> color verde</font><br>"

 TextLabel1.Text = "<b>Ultima modificación de la base de datos: <i><font color=\"red\">" & Now & "</font></i></b>"

sábado, 21 de marzo de 2015

gb.logging

Activar componente gb.logging!

' gambas class file

' by postapase

Public MisRegistros As Logger

Public Sub Form_Open()
Me.Center
MisRegistros = New Logger(Logger.Warning, Null, User.Home &/ "ArchivoLog.txt")
MisRegistros.Begin()
End

Public Sub btnRegistrar_Click()
MisRegistros.Log(txtMensaje.Text, Logger.Critical)
Wait 0.1
TextArea1.Clear
Visualizar()
End

Public Sub Visualizar()
Dim ArchivoX As File
Dim LineaX As String

ArchivoX = Open MisRegistros.Output For Read

While Not Eof(ArchivoX)
Line Input #ArchivoX, LineaX
TextArea1.Text &= LineaX & gb.NewLine
TextArea1.EnsureVisible
Wend

Close ArchivoX

End

Código fuente: MiLogger-0.0.1.tar.gz

 Metodos:

Begin:

isEnabledFor:

Log:

Propiedades de escritura y lectura

Enable:

Format:

Level:

Propiedad de solo lectura

Output: devuelve un string con la ruta y nombre del archivo log, antes definido en:
MisRegistros = New Logger(Logger.Warning, Null, User.Home &/ "ArchivoLog.txt")


Constantes:

Critical:

Debug:

DefaultFormat:

Error:

Info:

Stderr:

Stdout:

Warning


jueves, 19 de marzo de 2015

DateDiff



' gambas class file

'by postapase
' aqui les dejo un pequeño ejemplo de como usar DateDiff,
' en el programa que estoy haciendo llamado Taller 2015 se maneja una base de datos
' de reparaciones de equipos informaticos, una fecha de ingreso y otra de entrega del equipo
' y debemos no permitir que el usuario sin querer ponga una fecha incorrecta en la fecha de entrega del equipo
' la fecha de entrega debe ser igual o mayor que la fecha de ingreso pero nunca anterior a la fecha de ingreso.
'aqui el ejemplo:

Public Sub Form_Open()
Me.Center 'centramos el formulario
DateBox1Ingreso.Value = Date 'asignamos la fecha actual de sistema a la propiedad
'value de Control DateBox1Ingreso
End

Public Sub DateBox2Entrega_Change()
If DateDiff(DateBox1Ingreso.Value, DateBox2Entrega.Value, gb.Day) < 0 Then 'compara la fecha de ingreso
' que esta contenida en la propiedad value del DateBox1Ingreso con DateBox2Entrega.Value, la constante gb.day indica que datediff
'debe buscar diferencia de dias, si da un numero negativo la fecha de entrega es anterior que la fecha de ingreso lo cual no puede ser posible
' y se activa el mensaje de error y el boton de aviso, si es positivo o igual a 0, quiere decir que la fecha de entrega es posterior a la de ingreso lo cual esta bien
'por tanto se oculta el boton de error y se ingresan los datos
btnError.Visible = True 'si la diferencia entre fechas en un numero negativo mostrara el boton
Else
btnError.Visible = False 'si la diferencia es 0 o un numero positivo se ocultara el boton
Endif
End

Public Sub btnVerificar_Click()
If DateDiff(DateBox1Ingreso.Value, DateBox2Entrega.Value, gb.Day) < 0 Then
Message.Warning("La fecha de entrega no puede ser anterior a la fecha de ingreso!!")
Endif
End



Código fuente: DateDiff-0.0.1.tar.gz

miércoles, 18 de marzo de 2015

Gambas Software Farm

Genial utilidad para los gamberos añadida a la ide, ahora podremos acceder a una base de datos con todos los códigos fuentes que se hayan publicado en el servidor propio de gambas, publico y con registro gratuito o también podes acceder como anónimo.

Ahora hacer conocer nuestro proyecto y compartirlo es tan fácil como acceder al menú Proyecto seguido de clic en Publish (tener abierto gambas con el proyecto que queremos publicar) y seguir los pasos del programa.

Que grande es gambas, cada día mas fácil y mas potente!
No lo dudes mas, gambas es tu lenguaje de programación, empeza hoy mismo.

URLLable


URLLable (nueva clase en gambas 3.7)

Ya tenemos disponible la nueva versión de gambas 3.7 y entre otras novedades importantes tenemos la de una nueva clase llamada URLLabel.

Con esta clase podemos muy fácilmente añadir un link para que el usuario vea una pagina de internet X, solamente modificando dos de sus propiedades de escritura y lectura que son Link, en donde debemos poner el enlace o Link exacto sin errores y la propiedad Text que es el nombre del enlace y es como el usuario lo vera podemos usar la misma dirección de enlace u otro nombre que consideremos mejor.



domingo, 15 de marzo de 2015

EnsureVisible





' Gambas class file

'by postapase

Public Sub Form_Open()
 Me.Center
End

Public Sub btnEnviar_Click()
  If RadioButton1ActivarEnsureVisible.Value = True Then
     TextArea1.Text &= "EnsureVisible activado" & gb.NewLine
     TextArea1.EnsureVisible ' se ve siempre el último  mensaje del textArea
  Else 
     TextArea1.Text &= "EnsureVisible desactivado" & gb.NewLine
     ' aqui como no se usa el metodo EnsureVisible de TextArea1 no se vera
     ' el último o últimos mensajes escritos.
  Endif
End

Nota: gracias a jguardon aprendí este detalle importante y lo comparto con ustedes con un simple ejemplo gráfico.

Descargar código fuente: ensurevisible-0.0.1.tar.gz

miércoles, 11 de marzo de 2015

Que significan esos iconitos?


Muchas veces me preguntaba que significaba cada icono con su forma y color distintos sin encontrar un lugar donde se hable de ello. Aquí les dejo que nos dicen esos iconos, sus diferentes formas y colores.

Constante Predefinida ir...

gb.NewLine, gb.LongDate, gb.Link



 Control
TextBox, Label, TextArea, Button



 Evento
Button1_Click() , Button1_KeyRelease() , Button1_MouseDown()




 Método o subrutina
ListBox1.Add, ListBox1.Clear , ListBox1.Move
FMain.cargarConfig() , FMain.SubRutina_X()


 Propiedad de solo lectura
Button.Id, Button.HasFocus, DirBox.Children



 Propiedad de lectura/escritura
Button.Picture, Button.Enable, Button.Icono







Static Property Read







Static Public













 Variable
 
FMain.Arbitro, FMain.AutoGuardado, FMain.alargue

ejemplo de 3 variables del Tanteador del formulario principal 
llamado FMain.  , en el recuadro solo aparece el nombre de la variable 
sin el nombre del formulario.



ServerSocket

ServerSocket es una clase de red por lo tanto debemos activar el componente llamado gb.net(programacion de red). Se usa para crear un servidor, en mi caso estoy creando un servidor que provera a los clientes (cada pc que tenga el tanteador instalado frente a cada mesa de tenis de mesa) el acceso a una base de datos con nombres de jugadores y sus datos personales, un chat(mas que nada para ahorrarse andar caminando muchos metros), un tablero con todas las visualizaciones de todos los tanteadores en tiempo real para que el organizador pueda monitorear con comodidad el torneo.


Propiedades

Class: (propiedad de solo lectura)
 Nombre de la clase (ServerSocket)


Name: (propiedad de lectura y escritura)
Nombre de la clase que identifica la clase ServerSocket en nuestro programa o dentro del código fuente. En la imagen de arriba vemos como gambas predeterminadamente le pone ServerSocket1 y si agregas otro usa el mismo nombre sumando el numero es decir ServerSocket2, para los que comenzamos en esto de la programación es conveniente dejar el nombre completo para facilitar la comprensión del código fuente, si ya se es un programador avanzado seguro es mejor poner un nombre mas chico (ejemplos: Ss1, ServerS1, etc...)


Group:


Path: (propiedad de lectura y escritura,string)
Cuando el tipo de servidor es local se define la ruta del archivo especial.

ejemplo:
ServerSocket.type= Net.Local
ServerSocket.Path= Home.User &"/misocket"



Port (propiedad de lectura y escritura,numerico)
puerto elegido para escuchar (es conveniente usar un numero mayor a 1024 para evitar conflictos con aplicaciones comunes con puertos ya predeterminados, ejemplos: 5090,8911)

Public: (propiedad de lectura y escritura, verdadero o falso)


Type: (propiedad de lectura y escritura, constante)

  Net.Internet (un pc sera el servidor los otros pc serán clientes)
  Net.Local (el servidor y los clientes funcionan en una misma pc)


X: (propiedad de lectura y escritura, numerico)


Y: (propiedad de lectura y escritura,numerico)

Eventos:
Connection

Public Sub ServerSocket1_Connection()

End



Error

Public Sub ServerSocket1_Error()
 
 
End



Métodos

ServerSocket1.Accept()

ServerSocket1.Close()

ServerSocket1.Listen()

ServerSocket1.Pause()

ServerSocket1.Resume()





Vamos a: Proyecto-->Propiedades-->Componentes y en el cuadro de búsqueda ponemos net y aparecerá en una lista reducida tildamos en gb.net y hacemos clic en ok.


Al hacer esto se activara una pestaña con objetos de red entre ellos ServerSocket.


Ahora creamos un formulario y seleccionamos el icono ServerSocket y arrastramos al formulario y recién ahí estamos prontos para ingresar código y manipular la clase ServerSocket.