martes, 14 de julio de 2015

Recordar lista de palabras en un combobox



' gambas class file

' by postapase
' Activar complemento settings

Public Sub Form_Open()
Me.Center ' el formulario se abre centrado en la pantalla o escritorio
' toma el string anteriormente guardado en el archivo settings,
' separa los string por sus comas generando un string[] y lo asigna
' a la lista del combobox que es una variable de tipo string[]
cbxFiltro.List = Split(Settings["Recientes/Diccionarios"], ",")
End

Public Sub btnBuscar_Click()
Dim Buscar As String

Buscar = cbxFiltro.Text

If cbxFiltro.Count < 4 Then 'si la cantidad de string contenidas en el lista del combobox es menor que 4 ejecuta las lineas siguientes
'el 4 sera el número máximo de palabras a guardar en la lista se puede usar 10, 15 o 20 lo que vos quieras
' si cambias el cuatro por otro valor cambia tambien despues del else en cbxFiltro.Remove(valor-1)
If cbxFiltro.Find(Buscar) = -1 Then 'cbxFiltro.Find(Buscar) devuelve o retorna -1 sino encuentra coincidencias
' si la encuentra devuelve el número de index de la lista
cbxFiltro.Add(Buscar, 0) ' como cbxFiltro.Find(Buscar) retorno -1 significa que la palabra no esta por lo tanto la agregamos
Endif
Else
' si cbxFiltro.Count es mayor que 4 ejecuta estas lineas
cbxFiltro.Remove(3) 'busca en la lista el valor ingresado mas viejo que es el de mas abajo y lo elimina
'para dar lugar a la nueva palabra
If cbxFiltro.Find(Buscar) = -1 Then
cbxFiltro.Add(Buscar, 0) 'agrega la nueva palabra en la lista del combobox y la indexa en el primer lugar
Endif
Endif

GuardarRecientes() ' ejecuta o llama a esta subrutina

cbxFiltro.Text = "" ' borra el texto del combobox
cbxFiltro.SetFocus 'da el foco al combobox dejando el cursor parpadeando

End

Private Sub GuardarRecientes() ' rutina que guarda los string de la lista en un string solo separado por comas
Dim palabra, DicRecientes As String

If cbxFiltro.Count > 0 Then ' si la lista NO esta vacía ejecuta las lineas siguientes
For Each palabra In cbxFiltro.List 'recorre la lista del combobox que es una variable de tipo string[]
DicRecientes &= palabra & "," ' y se forma un string con las palabras a recordar separadas por comas
Next
Settings["Recientes/Diccionarios"] = Left(DicRecientes, Len(DicRecientes) - 1)
'elimina el último caracter del string que es una coma y lo guarda en el archivo settings
Else
'si la lista esta vacia guarda un string vacío
Settings["Recientes/Diccionarios"] = "" 'borra la string que contiene la lista de palabras
Endif

Settings.Save ' guarda ya los cambios en el archivo settings

End

Public Sub btnBorrar_Click()
cbxFiltro.Text = "" ' borra el texto del combobox
cbxFiltro.SetFocus 'da el foco al combobox dejando el cursor parpadeando
cbxFiltro.Clear 'borra la lista del combobox
Settings["Recientes/Diccionarios"] = "" 'borra el string que contiene la lista de palabras
Settings.Save ' guarda ya los cambios en el archivo settings
End

Descargar: Recordarlistacombobox-0.0.1.tar.gz


lunes, 15 de junio de 2015

IIF



' gambas class file

' by postapase

Public Sub chkMostrar_Click()
Print IIf(chkMostrar.Value, "Mostrar resultados esta habilitado", "Mostrar resultados deshabilitado")
End

Public Sub chkCambiar_Click()
chkCambiar.Text = IIf(chkCambiar.Value, "Habilitado", "Deshabilitado")
End

Public Function Arroba(cadena As String) As Boolean

If InStr(cadena, "@") <> 0 Then
Return True
Else
Return False
Endif

End

Public Sub btnVerificar_Click()
Print IIf(Arroba(txtcadena.Text), "La cadena contiene el caracter @", "Caracter @ no encontrado")
End

Public Sub Form_Open()
Me.Center
End


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

viernes, 5 de junio de 2015

Last y Group


Crea un nuevo proyecto, agrégale tres botones y un Label llamado "LabInfo" .
en la propiedad Group de cada botón asígnale un nombre, en este ejemplo use "grupo3". (en todas las propiedades Group de los botones el mismo nombre de grupo)

Last: Devuelve una referencia al último objeto que disparó un evento.

propiedad Group:



' gambas class file


Public Sub grupo3_Click()

LabInfo.Text = Last.Name
Print Last.Caption
Print Object.Class(Last).Name

End

Public Sub Form_Open()

Me.Title = "Usando Last y Group"

End

jueves, 30 de abril de 2015

Todas nuestras pruebas en un solo proyecto (truco by postapase)

Buenas, queridos novatos,

Les traigo un nuevo truco o sugerencia para que tengan todo mas optimizado y de facil acceso, por mi experiencia les cuento que me arte de tener 500 proyectos en una o varias carpetas.
Muchas veces necesite un proyecto rapido para consultar algo o hacer algunas pruebas y no lo encontraba o si lo encontraba lo hacia despues de un buen rato de buscar.
El truco se basa en esto y en si este truco tambien le puede servir a los expertos :P  jajaja, se trata de hacer un proyecto solo que diga por ejemplo TodasMisPruebas y en el tener todos nuestros proyectos ordenados en carpetas, ya que podemos cambiar la clase inicio que es la que gambas ejecuta primero al arrancar y de ahi podemos enlazar formularios, clases, archivos, módulos  como querramos.

En todo caso cuando querramos separar un proyecto y pulirlo bien ahí si hacemos un proyecto aparte.
Bueno espero les sirva, saludos.

miércoles, 29 de abril de 2015

Ejemplo simple de programacion de una clase

Clase Registro




' gambas class file

' by postapase

Export

Property Lugar As String '' Devuelve o muestra la carpeta que contiene el archivo de registros.
Property Read Nombre As String '' Devuelve o muestra el nombre del archivo de registros.
Property Read Ruta As String '' Devuelve o muestra la ruta completa del archivo de registros.

Private sLugar As String
Private sNombreX As String
Private sRuta As String


Public Sub _new(sDir As String, sNombre As String)

If Exist(sDir) = True Then
sLugar = sDir
sNombreX = sNombre
Lugar_Write(sLugar)
sRuta = sLugar &/ sNombre

If Exist(sRuta) = False Then
File.Save(sRuta, "*** Creado(" & Now & ") ***" & gb.NewLine)
Endif
Else
Message.Error("Lugar invalido!")
Return
Endif

End

Private Function Lugar_Read() As String
Return sLugar
End

Private Sub Lugar_Write(Value As String)
sLugar = Value
End

Private Function Nombre_Read() As String
Return sNombreX
End

Private Function Ruta_Read() As String
Return sRuta
End

Public Sub Agregar(Mensaje As String) '' Agrega un mensaje al archivo de registros.
Dim ArchivoX As File

If Exist(sRuta) = False Then
Return
Endif

If IsNull(Mensaje) Then
Return
Endif

ArchivoX = Open sRuta For Append
Print #ArchivoX, "(" & Now & ") " & Mensaje
Close #ArchivoX

End

Public Sub Borrar() '' Borra todo el contenido del archivo de registros (precaucion).

If Access(sLugar, gb.Write) = True Then
If Exist(sRuta) = True Then
Try Kill sRuta
File.Save(sRuta, "*** Creado(" & Now & ") ***" & gb.NewLine)
Else
File.Save(sRuta, "*** Creado(" & Now & ") ***" & gb.NewLine)
Endif
Endif

End


Código fuente en servidor de Gambas Farm

viernes, 17 de abril de 2015

función de IDE gambas


De aquí en mas iré publicando mis análisis del código de la IDE gambas.
Sera algo asi como analisis del codigo de un experto por un novato jaja.
(tengan precaución con mis comentarios no me hago responsable de mis horrores)

' gambas class file

'by postapase

'conjunto de caracteres que no se pueden usar para un nombre de archivo
Private Const FILE_FORBIDDEN_CAR As String = "?*/~" 'declaracion de constante de tipo string

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

Public Function CheckFileName(sName As String, Optional sDir As String) As String
'esta función es parte de la ide de gambas 3.7 se encuentra en el modulo Project
'leer el post: http://novatocodegambas.blogspot.com/2014/05/juguemos-ser-benoit-minisini.html
'función compuesta por dos argumentos uno obligatorio que es sName y el otro opcional es decir no es obligatorio
'colocar el argumento. Esta función retorna un valor de tipo string
'partes de la función:
'Declaracion: Public Function CheckFileName
'Argumentos: (sName As String, Optional sDir As String)
'Dato que retorna o devuelve la función: As String
Dim iInd As Integer

If Not sName Then Goto VOID_NAME 'chequea si el nombre es nulo o vacio.
'salta de aqui a la Etiqueta VOID_NAME:

If String.Left$(sName) = "." Then 'chequea si el primer caracter del nombre empieza por punto
iInd = 1
Goto BAD_START 'salta de aqui a la Etiqueta BAD_START: si el if devuelve true
Endif

For iInd = 1 To String.Len(sName) 'recorre el nombre del archivo viendo si tiene un caracter ilegal

If InStr(FILE_FORBIDDEN_CAR, String.Mid$(sName, iInd, 1)) Then Goto BAD_CHAR
'salta de aqui a la Etiqueta BAD_CHAR: si el if devuelve true

Next

If Len(sDir) Then
'verifica si el archivo ya existe
If Exist(sDir &/ sName) Then Goto ALREADY_EXIST 'salta de aqui a la Etiqueta ALREADY_EXIST: si el if devuelve true
Endif

Return
'Nombre vacio"
VOID_NAME:

Return ("Please type a name.") '"Por favor, escriba un nombre."

BAD_CHAR:

Return ("This name contains a forbidden character:") & " [ " & String.Mid$(sName, iInd, 1) & " ]"
'"Este nombre contiene un carácter prohibido"

BAD_START:

Return ("The name cannot begins with a dot.") '"El nombre no puede empezar por un punto."

ALREADY_EXIST:

Return ("This name is already used. Choose another one.") '"Este nombre ya está en uso. Elija otra."

End

Public Sub Button1_Click()
' este codigo lo agregue yo para ver funcionando la funcion
Print File.Name(FileChooser1.SelectedPath)
Print FileChooser1.Dir
Print FileChooser1.SelectedPath

Message.Info(CheckFileName(File.Name(FileChooser1.SelectedPath), FileChooser1.Dir))
'muestra el mensaje con el string que retorno la funcion CheckFileName
'si sale un mensaje sin texto es que el nombre esta correcto.

End

Clase Printer








' gambas class file

'by postapase

Public Sub btnClear_Click()
TextArea1.Clear
End

Public Sub btnImprimir_Click()
Printer1.Print()
End

Public Sub Printer1_Draw()
Dim PRINT_MARGIN As Float = Paint.Width / Printer1.PaperWidth * 10
Dim Datos As String[]
Dim DatosAimprimir, Xlinea As String

Datos = Split(TextArea1.Text, gb.NewLine) 'separando cada linea por salto de linea del TextArea

For Each Xlinea In Datos
DatosAimprimir &= Trim$(Xlinea) & gb.CrLf 'agrego salto de linea entendible por la impresora
Next

Paint.DrawRichText(DatosAimprimir, PRINT_MARGIN, PRINT_MARGIN,,, Align.TopNormal)

End

Public Sub btnSalir_Click()
Me.Close
End

Public Sub Form_Open()
Me.Center
End
Related Posts Plugin for WordPress, Blogger...