lunes, 8 de septiembre de 2014

CBoolean y Settings

Otro ejemplo de Settings con Cboolean, la razón de porque hago muchos ejemplos con Settings es que a mi me costo enormidades entender el funcionamiento de este componente que es vital para cualquier programa, ya que sin el no podemos guardar configuraciones y datos importantes de funcionamiento de nuestra aplicación, y la info que hay por ahí es escasa.
Ojala que ustedes con esta info no pasen tantas dificultades como pase yo para poder comprender y usar Settings.




' gambas class file

'by postapase
Public Sub Form_Open()
Me.Center
CheckBox1.Value = Settings["Opciones/" & CheckBox1.Text, False]
CheckBox2.Value = Settings["Opciones/" & CheckBox2.Text, False]
CheckBox3.Value = Settings["Opciones/" & CheckBox3.Text, False]
End

Public Sub CheckBox1_Click()
Settings["Opciones/" & CheckBox1.Text] = CBoolean(CheckBox1.Value)
LeerArchivoDeConfiguracion()
End

Public Sub CheckBox2_Click()
Settings["Opciones/" & CheckBox2.Text] = CBoolean(CheckBox2.Value)
LeerArchivoDeConfiguracion()
End

Public Sub CheckBox3_Click()
Settings["Opciones/" & CheckBox3.Text] = CBoolean(CheckBox3.Value)
LeerArchivoDeConfiguracion()
End

Public Sub LeerArchivoDeConfiguracion()
Dim ArchivoX As File
Dim Linea As String
Dim Ruta As String

Settings.Save
TextArea1.Clear
Ruta = Settings.DefaultDir &/ Application.Name & ".conf"
ArchivoX = Open Ruta For Read

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

Close ArchivoX

End


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

domingo, 7 de septiembre de 2014

Contar números pares e impares



Usando MOD


' Gambas class file

'by postapase

Public Sub Form_Open()
Dim x, Num, dato, dato1, par, impar As Integer
Dim Numeros As New Integer[]
Dim todos As String

For x = 0 To 10
    Randomize
    Wait 0.1
    Num = Rnd(0, 100)
    Numeros.Add(Num)
Next

For Each dato In Numeros
   If dato Mod 2 = 0 Then
     Inc par
   Else
     Inc impar
   Endif
Next

For Each dato1 In Numeros
  todos &= dato1 & ","
Next

Print Left$(todos, Len(todos) - 1)
Print "Impares= " & impar
Print "Pares= " & par

End

jueves, 4 de septiembre de 2014

Ordenamiento de burbuja usando Repeat y Continue

Otro ejemplo usando Repeat y Continue



Que es el Ordenamiento_de_burbuja?

' gambas class file
'by postapase

Public num As Integer
Public numeritos As String

Public Sub Form_Open()
Me.Center
End

Public Sub Button1_Click()
Dim arrayNum As Integer[] = ["55", "86", "48", "16", "82"]
Dim x, y, a, s, Rota1, Rota2 As Integer

TextArea1.Clear

Repeat
If a = 4 Then a = 0
If y = 4 Then y = 0
If arrayNum[y] < arrayNum[a + 1] Then
Inc y
Inc a
Inc s
Continue
Endif
Rota1 = 0
Rota2 = 0
Rota1 = arrayNum[y]
Rota2 = arrayNum[a + 1]
arrayNum[y] = Rota2
arrayNum[a + 1] = Rota1
Dec s
For Each num In arrayNum
numeritos &= num & " "
Wait 0.2
Next
TextArea1.Text &= numeritos & gb.NewLine
numeritos = ""
Until s > 4

For Each num In arrayNum
numeritos &= num & " "
Wait 0.2
Next
TextArea1.Text &= gb.NewLine & "Resultado final es: " & numeritos & gb.NewLine
End

Código fuente: OrdenandoNumeros

Continue

Aquí un ejemplo de como usar Continue y su modo de aplicarlo.


' gambas class file

'by postapase (novato en programación)

Public Sub btnBuscar_Click()
Dim x, contador, encontrados As Integer '

For x = 1 To txtNumero.Text
If Right$(CString(x)) <> 5 Then Continue 'Right$ nos devuelve el primer caracter empezando de la derecha, y si es diferente a cinco
' no ejecuta las lineas después de este comentario va derecho al Next y del Next a la primera linea dentro del For ,
' en este caso( If Right$(CString(x)) <> 5 Then Continue ), y si es igual se ejecutan las lines siguientes a continue
' aqui el sentido de usar continue
Inc encontrados
Wait 0.05
TextArea1.Text &= " (" & encontrados & ") números terminados en 5: " & x & gb.NewLine
Next

End

Public Sub txtNumero_KeyPress()
Select Case Key.Code ' examina que tecla fue presionada
Case 48 To 57 'si se preciona alguna tecla del 0 al nueve no hace nada
Case Else ' en cambio si se preciona cualquier tecla que no sea las incluidas en el Case anterior detiene el evento
'lo que logramos con esto es que el usuario no pueda teclear letras o cualquier caracter que no sea un número
Stop Event
End Select
End

Public Sub Form_Open()
Me.Center
End
Código fuente: Continue-0.0.1.tar.gz