lunes, 28 de septiembre de 2015

Como crear un comando para Linux en Gambas




Creamos un nuevo proyecto gambas de tipo consola y pegamos este código.
luego lo copilamos, despues intalamos el paquete .deb, y despues lo probamos en la terminal.



' gambas module file
'by postapase

Public Sub Main()
 Dim modificador As String

 modificador = Application.Args[1] 'esto lo aprendi de Shell

 Select modificador
   Case "arquitectura"
     Shell "uname -m"
   Case "codename"
     Shell "uname -n"
   Case "--help"
     Print Application.Name & "-" & Application.Version
   Case Else
     Print "modificador desconocido"
     Print "escriba  'PcInfo --help'"
 End Select

End


necesario registrarse en el foro, código fuente:
http://www.gambas-es.org/download.php?id=617

Saludos, comenten....

sábado, 26 de septiembre de 2015

Mis retos resueltos en Solveet!!!



Aquí dejare los enlaces a los retos que he resuelto con gambas en Solveet.


Mis soluciones




martes, 22 de septiembre de 2015

Como reproducir un sonido en nuestra aplicación con gb.sdl2.audio?





Primero creamos un nuevo proyecto, despues vamos a componentes y tildamos
gb.sdl2.audio. En este ejemplo el archivo de audio esta dentro del proyecto en la carpeta datos.


' gambas class file

' by postapase


Public Sub Form_Open()
  Me.Center 'centramos el formulario
End

Public Sub Button1_Click()
Dim misonido As Sound 'declaramos la variable de sonido llamada misonido

' misonido = Sound.Load("/home/prueba1/Escritorio/camara.ogg") 'una ruta X

misonido = Sound.Load("camara.ogg") 'Asignamos el sonido a la variable
' que se encuentra en la carpeta Datos del proyecto.

misonido.Play 'reproducimos el sonido

End


Sonido-0.0.1.tar.gz

 FMain.SonidoTantos = New Sound("Sonidos/Kopete_send.ogg") 'vieja linea

 FMain.SonidoTantos = Sound.Load("Sonidos/Kopete_send.ogg")'Linea actualizada


lunes, 21 de septiembre de 2015

Mostrar lista de coincidencias de nombres


Esto trata de presentar una lista de nombres que coincidan con lo que vamos tipeando en el txt, la lista la presentamos en un combox que esta oculto solo se ve cuando encuentra al menos una coincidencia.

Tuve que hacer así, pues lo tenia hecho solo en un combobox pero después de una actualización de gambas ningún combobox funcionaba bien, además de mis limitaciones como programador novato que soy, pero esta solución esta prolija y funciona bien, se las dejo para que experimenten.

Cuando disponga de tiempo comentare el código, saludos.



' gambas class file

' by Postapase

Public EstosNombres As New String[]

Public Sub Form_Open()

Me.Center

EstosNombres.Add("JOSE")
EstosNombres.Add("JUAN")
EstosNombres.Add("JOSELO")
EstosNombres.Add("MARIA")
EstosNombres.Add("MARCELO")
EstosNombres.Add("MARCOS")

End

Public Sub txtNombre_KeyRelease()
Dim nombre As String

If Len(txtNombre.Text) = 0 Then
cbxNombre.Visible = False
Return
Endif

cbxNombre.Clear

For Each nombre In EstosNombres
If InStr(Left(UCase(nombre), Len(txtNombre.Text)), UCase(txtNombre.Text)) = 1 Then
cbxNombre.Add(nombre)
cbxNombre.Visible = True
Endif
Next

End

Public Sub cbxNombre_Click()

txtNombre.Text = cbxNombre.Text
cbxNombre.Visible = False

End


ListaComboBox-0.0.1.tar.gz

sábado, 19 de septiembre de 2015

Clase Persona (ejemplo)



FMain:

' gambas class file

' by postapase

Public Personas As New Variant[]


Public Sub btnAgregarPersona_Click()
Dim EstaPersona As New Persona

EstaPersona.Nombre = txtNombre.Text
EstaPersona.Apellido = txtApellido.Text

Personas.Add(EstaPersona)

LabInfo.Text = "Se agrego a " & EstaPersona.Nombre & ", " & EstaPersona.Apellido

txtApellido.Clear
txtNombre.Clear
txtNombre.SetFocus

End

Public Sub btnLeerDatosPersonas_Click()
Dim Xpersona As Persona

TextArea1.Clear

For Each Xpersona In Personas
TextArea1.Text &= Xpersona.Nombre & ", " & Xpersona.Apellido & gb.NewLine
Next

End

Public Sub Form_Open()
Me.Center
End


Clase Persona:


' gambas class file

' by postapase

Property Nombre As String
Property Apellido As String

Private XNombre As String
Private XApellido As String

Private Function Nombre_Read() As String
Return XNombre
End

Private Sub Nombre_Write(Value As String)
XNombre = Value
End

Private Function Apellido_Read() As String
Return XApellido
End

Private Sub Apellido_Write(Value As String)
XApellido = Value
End


Clase_Persona-0.0.1.tar.gz

martes, 15 de septiembre de 2015

Ejemplo de componente gb.chart (gráficas)





' Gambas class file


Public Sub Form_Open()
'Texto de la leyenda
Chart.Headers.Values = ["Manzanas", "Peras", "Naranjas", "Bananas"]
'Titulo de la Gráfica
Chart.Title.Text = "Almacen de frutas"
'Leyenda
Chart[0].Values = [9, 3.5, 15, 7.9]
Chart.Legend.Visible = True
Chart.Legend.Title = "Cajones"
'Tipo de Gráfica
Chart.Type = ChartType.Lines
DrawingArea1.Refresh
End

' Y en el evento Draw del DrawingArea1 se debe escribir el siguiente código
Public Sub DrawingArea1_Draw()
 Chart.Width = 600
 Chart.Height = 450
 Chart.Draw 'Muestra la Grafica
End

Public Sub Button1_Click()
  'Valores de las Gráfica tipo Float
  Chart[0].Values = [TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text]
  DrawingArea1.Refresh
End

GraficasChart-0.0.1.tar.gz


Información de métodos, propiedades etc.


Chart.Type (propiedad de lectura/escritura) integer
ChartType = ChartType.AreasPercent
ChartType=1







Número aleatorio (ejemplo de como usar report)



El componente report no es fácil de usar, o mejor dicho de entender como funciona al menos para mi, estoy en campaña de aprender a usarlo y como siempre busco hacer cosas supersuper simples pues así se entiende.
Este ejemplo hace un reporte de un numero aleatorio.

Primero que nada creamos un proyecto nuevo y en el formulario le agregamos un botón, después vamos a componentes y agregamos gb.report2.

Creamos un nueva clase tipo report como lo muestra la imagen de abajo.


Este código lo pegamos en el formulario principal por defecto de llama FMain


' gambas class file


Public Sub Form_Open()
Me.Center
End

Public Sub Button1_Click()
Dim reportTitulo As New Report1 'aquí declaramos la clase de tipo Report1,
'que es la clase que creamos anteriormente que es un formulario especial con algunos elementos
'como label, pictures, algunos contenedores y algo mas.

Report1.Preview() ' aquí ordenamos ejecutar el formulario especial (from de report) para poder visualizar los resultados.
'Todo lo que queramos hacer o que se muestre en el reporte tenemos que hacerlo dentro de la clase Report1.
End



Este código lo pegamos en la clase report que tendrá como nombre predeterminado Report1.


' gambas class file

Public Sub Report_Open()
Dim Xnumero As Integer

Randomize
Xnumero = Rand(0, 1000)

ReportLabel2.Text = Xnumero

End


Resultado del reporte.



Bueno espero que les ayude a iniciarse a usar este complemento llamado gb.report2, saludos.

Reportes-0.0.1.tar.gz


Ejemplo 2 (variación)

' gambas class file


Public Sub Form_Open()
Me.Center
End

Public Sub Button1_Click()
Dim reportTitulo As Report1
Dim Xnumero As Integer

Randomize
Xnumero = Rand(0, 1000)

Print Xnumero

reportTitulo = New Report1(Xnumero)

reportTitulo.Preview()

End
--------------------------------------------------------------------
' gambas class file

Public Sub _new(EsteNumero As Integer)
ReportLabel2.Text = EsteNumero
End

Public Sub Report_Open()

End

Reportes-0.0.2.tar.gz


Ejemplo 3(complicando un poco ja)




FMain:


' gambas class file


Public Sub Form_Open()
Me.Center
End

Public Sub Button1_Click()
Dim ReportNumeros As Report1

ReportNumeros = New Report1(TextBox1.Text)
ReportNumeros.Preview()

End





Clase Report1:

' gambas class file

Private Xcantidad As Integer


Public Sub _new(cantidad As Integer)
Xcantidad = cantidad
End

Public Sub Report_Open()
Dim XNumeros As Integer[]
Dim a, Xnum As Integer
Dim XReportLabel As ReportLabel

Randomize

For a = 1 To Xcantidad

Xnum = Rand(1, 1000)

Print Xnum

XReportLabel = New ReportLabel(RVBox)
XReportLabel.Text = Xnum
XReportLabel.Visible = True
XReportLabel.Font.Size = 20
XReportLabel.Font.Bold = True
XReportLabel.Alignment = Align.Center

Next

End







MontonNumeros-0.0.1.tar.gz


Ejemplo 4 (report de texto de un TextArea) 





Fmain:



' gambas class file

Public Sub Form_Open()
Me.Center
End

Public Sub Button1_Click()
Dim ReportNotas As Report1
Dim TextoFormateado As String
Dim Partes As String[]

Partes = Split(TextArea1.Text, gb.NewLine)

ReportNotas = New Report1(Partes)
ReportNotas.Preview()

End





Report1

' gambas class file

Private Xtexto As String[]


Public Sub _new(parrafos As String[])
Xtexto = parrafos
End


Public Sub Report_Open()
Dim EsteParrafo As String
Dim LabelParrafo As ReportLabel

For Each EsteParrafo In Xtexto
LabelParrafo = New ReportLabel(RVBox)
LabelParrafo.Visible = True
LabelParrafo.Text = EsteParrafo
Next

End


ReportTextArea-0.0.1.tar.gz

miércoles, 9 de septiembre de 2015

Texto en movimiento !! (Horizontal o Vertical)

Aquí les dejo dos ejemplos de como podríamos poner texto en movimiento tanto horizontalmente como verticalmente.  

 
Ejemplo Texto con movimiento Vertical: 



Ejemplo Texto con movimiento Horizontal:



 

domingo, 6 de septiembre de 2015

Clase Collection (colección-colecciónes)

Declaración

Public MiColeccion As New Collection ' si queremos tener acceso desde todas las clases y formularios
Private MiColeccion As New Collection 'si solo queremos tener acceso de la clase o formulario donde es declarada
Dim MiColeccion As New Collection 'si solo queremos usarla en una subrutina o funcion

Métodos:

Añade un elemento a la colección
MiColeccion.Add(Value As Variant, Key As String)

Value As Variant=dato de cualquier tipo (cadena, numérico, booleano etc)
Key As String=llave con dato de solo cadena, string o palabra.

Ejemplo:


Public Sub Form_Open()

  MiColeccion.Add(2, "bicicletas")
  MiColeccion.Add(True, "Luz")
  MiColeccion.Add("verde", "Color")
 
  For Each MiColeccion
    Print MiColeccion.Key & "= " & MiColeccion[MiColeccion.Key]
  Next
 
End

Salida:
bicicletas= 2
Luz= T
Color= verde


Elimina todos los elementos de la colección.
MiColeccion.Clear


Elimina un elemento de la colección.
MiColeccion.Remove(Key As String)

Ejemplo: MiColeccion.Remove("Color")


sdf