Es mostren els missatges amb l'etiqueta de comentaris VISUAL-PRIMARIA. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris VISUAL-PRIMARIA. Mostrar tots els missatges

dissabte, 28 de novembre del 2009

Milutest V51 Disponible



Se puede mejorar, evidentementes, pero quien lo desee, que me deje un comentario y su mail y le enviaré un zip que contendrá:


  • el ejecutable con extensión eje. Solamente es necesario canviar eje por exe para que funcione. Gmail no permite enviar ficheros ejecutables, con lo que hay que engañarlo un poco.

  • 25 ejercicios en formato txt

  • Una carpeta con iconos de Tintín

Funcionamiento:


Descomprime el zip y cambia la extensión del fichero eje por exe. Crea un acceso directo y ponle un icono de la carpeta de iconos.
Ejecuta el fichero exe. Verás que el botón de la parte superior derecha, a diferencia de la imagen de esta entrada está activado. Púlsalo y se creará la carpeta c:\temp\examen
Pulsa el ejercicio que quieras


Para salir del programa:


Pulsa la cruz de la parte superior derecha o el botón Adéu-Guau

Si te equivocas, aparecerá un Milú-demonio que siempre podrás corregir.

Si aciertas, apareceráun Milú-angelito que te dará un punto.

Al final, pulsa el botón Nota para saber tu puntuación.



Editar (cambiar) los ficheros txt de preguntas y respuestas

Han de tener once líneas: la primera de título, las siguientes de preguntas y respuestas separadas por una coma. Ejemplo:

Para cualquier duda, ... un comentario.


CODI



1. FORM1.FRM
2. FORM2.FRM
3. MODULE1.BAS



1. FORM1.FRM
###############

Option Explicit
Private Sub cmd00_Click()
'Ruta = InputBox("Indica el fitxer dins c:\temp\Examen. Per exemple:" & _
' vbCrLf & "Angles01.txt", "El profesor Milú")
'PintaRuta
End Sub
Private Sub cmd11_Click()
Ruta = "C:\Temp\Examen\Angles01.txt"
PintaRuta
End Sub
Private Sub cmd21_Click()
Ruta = "C:\Temp\Examen\Mates01.txt"
PintaRuta
End Sub
Private Sub cmd31_Click()
Ruta = "C:\Temp\Examen\Castellano01.txt"
PintaRuta
End Sub
Private Sub cmd41_Click()
Ruta = "C:\Temp\Examen\Catala01.txt"
PintaRuta
End Sub
Private Sub cmd12_Click()
Ruta = "C:\Temp\Examen\Angles02.txt"
PintaRuta
End Sub
Private Sub cmd22_Click()
Ruta = "C:\Temp\Examen\Mates02.txt"
PintaRuta
End Sub
Private Sub cmd32_Click()
Ruta = "C:\Temp\Examen\Castellano02.txt"
PintaRuta
End Sub
Private Sub cmd42_Click()
Ruta = "C:\Temp\Examen\Catala02.txt"
PintaRuta
End Sub
Private Sub cmd13_Click()
Ruta = "C:\Temp\Examen\Angles03.txt"
PintaRuta
End Sub
Private Sub cmd23_Click()
Ruta = "C:\Temp\Examen\Mates03.txt"
PintaRuta
End Sub
Private Sub cmd33_Click()
Ruta = "C:\Temp\Examen\Castellano03.txt"
PintaRuta
End Sub
Private Sub cmd43_Click()
Ruta = "C:\Temp\Examen\Catala03.txt"
PintaRuta
End Sub
Private Sub cmd14_Click()
Ruta = "C:\Temp\Examen\Angles04.txt"
PintaRuta
End Sub
Private Sub cmd24_Click()
Ruta = "C:\Temp\Examen\Mates04.txt"
PintaRuta
End Sub
Private Sub cmd34_Click()
Ruta = "C:\Temp\Examen\Castellano04.txt"
PintaRuta
End Sub
Private Sub cmd44_Click()
Ruta = "C:\Temp\Examen\Catala04.txt"
PintaRuta
End Sub
Private Sub cmd15_Click()
Ruta = "C:\Temp\Examen\Angles05.txt"
PintaRuta
End Sub
Private Sub cmd25_Click()
Ruta = "C:\Temp\Examen\Mates05.txt"
PintaRuta
End Sub
Private Sub cmd35_Click()
Ruta = "C:\Temp\Examen\Castellano05.txt"
PintaRuta
End Sub
Private Sub cmd45_Click()
Ruta = "C:\Temp\Examen\Catala05.txt"
PintaRuta
End Sub

Private Sub PintaRuta()
Load frm2
frm2.Show

Open Ruta For Input As #1
Input #1, Dato00
frm2.txtCabecera = Dato00
Materia = Left(Dato00, 4)

If Materia = "ANGL" Or Materia = "INGL" Then
frm2.imgANGL.Visible = True
ElseIf Materia = "MATE" Then
frm2.imgMATE.Visible = True
frm2.txtQry01.Font.Size = 18
frm2.txtQry02.Font.Size = 18
frm2.txtQry03.Font.Size = 18
frm2.txtQry04.Font.Size = 18
frm2.txtQry05.Font.Size = 18
frm2.txtQry06.Font.Size = 18
frm2.txtQry07.Font.Size = 18
frm2.txtQry08.Font.Size = 18
frm2.txtQry09.Font.Size = 18
frm2.txtQry10.Font.Size = 18
ElseIf Materia = "CAST" Then
frm2.imgCAST.Visible = True
ElseIf Materia = "CATA" Then
frm2.imgCATA.Visible = True

Else
frm2.imgALTR.Visible = True
End If

Input #1, Dato01, Solucion01
frm2.txtQry01 = Dato01
Input #1, Dato01, Solucion02
frm2.txtQry02 = Dato01
Input #1, Dato01, Solucion03
frm2.txtQry03 = Dato01
Input #1, Dato01, Solucion04
frm2.txtQry04 = Dato01
Input #1, Dato01, Solucion05
frm2.txtQry05 = Dato01
Input #1, Dato01, Solucion06
frm2.txtQry06 = Dato01
Input #1, Dato01, Solucion07
frm2.txtQry07 = Dato01
Input #1, Dato01, Solucion08
frm2.txtQry08 = Dato01
Input #1, Dato01, Solucion09
frm2.txtQry09 = Dato01
Input #1, Dato01, Solucion10
frm2.txtQry10 = Dato01

Close
End Sub

Private Sub cmdPath_Click()
MkDir ("C:\Temp\Examen")
End Sub

Private Sub Form_Load()
Dim listadodir As String
Dim listadofile As String

Dim miruta As String

miruta = "C:\temp\Examen"
listadodir = Dir(miruta, vbDirectory)

If listadodir = "Examen" Then
frm1.cmdPath.Enabled = False
Else
frm1.cmdPath.Enabled = True
End If


'Dim numeret As String
numeret = 1

listadofile = Dir("c:\temp\examen\Angles0" & numeret & ".txt")
If listadofile = "Angles0" & numeret & ".txt" Then
frm1.cmd11.Enabled = True
Else
frm1.cmd11.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Mates0" & numeret & ".txt")
If listadofile = "Mates0" & numeret & ".txt" Then
frm1.cmd21.Enabled = True
Else
frm1.cmd21.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Castellano0" & numeret & ".txt")
If listadofile = "Castellano0" & numeret & ".txt" Then
frm1.cmd31.Enabled = True
Else
frm1.cmd31.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Catala0" & numeret & ".txt")
If listadofile = "Catala0" & numeret & ".txt" Then
frm1.cmd41.Enabled = True
Else
frm1.cmd41.Enabled = False
End If

numeret = numeret + 1

listadofile = Dir("c:\temp\examen\Angles0" & numeret & ".txt")
If listadofile = "Angles0" & numeret & ".txt" Then
frm1.cmd12.Enabled = True
Else
frm1.cmd12.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Mates0" & numeret & ".txt")
If listadofile = "Mates0" & numeret & ".txt" Then
frm1.cmd22.Enabled = True
Else
frm1.cmd22.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Castellano0" & numeret & ".txt")
If listadofile = "Castellano0" & numeret & ".txt" Then
frm1.cmd32.Enabled = True
Else
frm1.cmd32.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Catala0" & numeret & ".txt")
If listadofile = "Catala0" & numeret & ".txt" Then
frm1.cmd42.Enabled = True
Else
frm1.cmd42.Enabled = False
End If

numeret = numeret + 1

listadofile = Dir("c:\temp\examen\Angles0" & numeret & ".txt")
If listadofile = "Angles0" & numeret & ".txt" Then
frm1.cmd13.Enabled = True
Else
frm1.cmd13.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Mates0" & numeret & ".txt")
If listadofile = "Mates0" & numeret & ".txt" Then
frm1.cmd23.Enabled = True
Else
frm1.cmd23.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Castellano0" & numeret & ".txt")
If listadofile = "Castellano0" & numeret & ".txt" Then
frm1.cmd33.Enabled = True
Else
frm1.cmd33.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Catala0" & numeret & ".txt")
If listadofile = "Catala0" & numeret & ".txt" Then
frm1.cmd43.Enabled = True
Else
frm1.cmd43.Enabled = False
End If

numeret = numeret + 1

listadofile = Dir("c:\temp\examen\Angles0" & numeret & ".txt")
If listadofile = "Angles0" & numeret & ".txt" Then
frm1.cmd14.Enabled = True
Else
frm1.cmd14.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Mates0" & numeret & ".txt")
If listadofile = "Mates0" & numeret & ".txt" Then
frm1.cmd24.Enabled = True
Else
frm1.cmd24.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Castellano0" & numeret & ".txt")
If listadofile = "Castellano0" & numeret & ".txt" Then
frm1.cmd34.Enabled = True
Else
frm1.cmd34.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Catala0" & numeret & ".txt")
If listadofile = "Catala0" & numeret & ".txt" Then
frm1.cmd44.Enabled = True
Else
frm1.cmd44.Enabled = False
End If

numeret = numeret + 1

listadofile = Dir("c:\temp\examen\Angles0" & numeret & ".txt")
If listadofile = "Angles0" & numeret & ".txt" Then
frm1.cmd15.Enabled = True
Else
frm1.cmd15.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Mates0" & numeret & ".txt")
If listadofile = "Mates0" & numeret & ".txt" Then
frm1.cmd25.Enabled = True
Else
frm1.cmd25.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Castellano0" & numeret & ".txt")
If listadofile = "Castellano0" & numeret & ".txt" Then
frm1.cmd35.Enabled = True
Else
frm1.cmd35.Enabled = False
End If

listadofile = Dir("c:\temp\examen\Catala0" & numeret & ".txt")
If listadofile = "Catala0" & numeret & ".txt" Then
frm1.cmd45.Enabled = True
Else
frm1.cmd45.Enabled = False
End If

End Sub

2. FORM2.FRM

###############

Option Explicit
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdNota_Click()
If frm2.txtAns01 = Solucion01 Then
Resultado01 = 1
img11.Visible = True
Else
Resultado01 = 0
img21.Visible = True
End If

If frm2.txtAns02 = Solucion02 Then
Resultado01 = Resultado01 + 1
img12.Visible = True
Else
Resultado01 = Resultado01 + 0
img22.Visible = True
End If


If frm2.txtAns03 = Solucion03 Then
Resultado01 = Resultado01 + 1
img13.Visible = True
Else
Resultado01 = Resultado01 + 0
img23.Visible = True
End If


If frm2.txtAns04 = Solucion04 Then
Resultado01 = Resultado01 + 1
img14.Visible = True
Else
Resultado01 = Resultado01 + 0
img24.Visible = True
End If


If frm2.txtAns05 = Solucion05 Then
Resultado01 = Resultado01 + 1
img15.Visible = True
Else
Resultado01 = Resultado01 + 0
img25.Visible = True
End If


If frm2.txtAns06 = Solucion06 Then
Resultado01 = Resultado01 + 1
img16.Visible = True
Else
Resultado01 = Resultado01 + 0
img26.Visible = True
End If


If frm2.txtAns07 = Solucion07 Then
Resultado01 = Resultado01 + 1
img17.Visible = True
Else
Resultado01 = Resultado01 + 0
img27.Visible = True
End If


If frm2.txtAns08 = Solucion08 Then
Resultado01 = Resultado01 + 1
img18.Visible = True
Else
Resultado01 = Resultado01 + 0
img28.Visible = True
End If


If frm2.txtAns09 = Solucion09 Then
Resultado01 = Resultado01 + 1
img19.Visible = True
Else
Resultado01 = Resultado01 + 0
img29.Visible = True
End If


If frm2.txtAns10 = Solucion10 Then
Resultado01 = Resultado01 + 1
img20.Visible = True
Else
Resultado01 = Resultado01 + 0
img30.Visible = True
End If

Close #1


NotaNum = Resultado01

If NotaNum > 8 Then
Nota = "Excelente"
ElseIf NotaNum > 6 Then
Nota = "Notable"
ElseIf NotaNum > 5 Then
Nota = "Bién"
ElseIf NotaNum > 4 Then
Nota = "Suficiente"
Else
Nota = "Insuficiente"
End If

txtNota.Text = Nota


End Sub

Private Sub Image1_Click()

End Sub


3. MODULE1.BAS
###############

dimarts, 24 de novembre del 2009

UneText


Per unir molts fitxers de text en un de sol. El codi ja és una mica digne fins i tot..

I el codi pla:

'#####MODUL#####
Option Explicit

Public fichero As String
Public resultado As String
Public volumen As Integer

'#####FORMULARI#####

Option Explicit
Private Sub Form_Load()
End Sub
Private Sub txtVolum_Change()
volumen = txtVolum.Text
Calculo
lblJaEsta.Visible = True
End Sub
Private Sub Calculo()

Dim i As Integer
i = 1

resultado = "C:\temp\UneText\resultado.txt"

Dim linea As String

For i = 1 To volumen

fichero = "C:\temp\UneText\" & i & ".txt"
Open fichero For Input As #1
Open resultado For Append As #10

While Not EOF(1)
Line Input #1, linea$
Print #10, linea$
Wend
Close

Next i
Close

End Sub

dimecres, 4 de novembre del 2009

MiluTest03. Codi menys lamentable

Però encara ho continua essent. Per cert, no eren 782 caracters.. això sols era el formulari. Si afegim el cmdNota, en realitat eren 3337 caracters.

La nova versió s'ha reduit a 2623 caràcters. Coses a destacar:

1) L'usuari escull el txt que conté les preguntes i les respostes
2) Sols hi ha un fitxer. Abans hi havia un de preguntes i un de respostes
3) He descobert com declarar variables de tipus Public mitjançant la creació d'un mòdul
4) En alguns casos sol hi ha una declaració per les 10 entrades.
5) Fracàs en l'ús del for - to
6) El tractament de la suma de les notes es bastant més digne.
7) No he treballat el tema de matrius. Probablement evitaria moltes línies.

Us poso una captura dels fitxers de preguntes i respostes i un parell d'imatges del programa funcionant. En la segona imatge, l'usuari ha corregit dues errades, la qual cosa li ha fet pujar nota.

Nota per generar els fitxers de preguntes i respostes:
a) ha de tenir 11 línies
b) la primera línia ha de contenir,a principi de línia, les paraules MATEMATICAS o INGLES o CASTELLANO (ho anire ampliant)
c) des de la segona fins a la decena linia, separem pregunta i resposta amb una coma.



dimarts, 3 de novembre del 2009

MiluTest 02. Codi lamentable (782)

Option Explicit

Private Sub Form_Load()

Dim ruta As String

ruta = "C:\LearnVisual\MiluTest_01\PlantillaPregunta.txt"

Dim Dato00 As String

Dim Materia As String

Dim Dato01 As String

Dim Dato02 As String

Dim Dato03 As String

Dim Dato04 As String

Dim Dato05 As String

Dim Dato06 As String

Dim Dato07 As String

Dim Dato08 As String

Dim Dato09 As String

Dim Dato10 As String

Open ruta For Input As #1

Input #1, Dato00

txtDato00 = Dato00

Materia = Left(Dato00, 4)

If Materia = "CAST" Then

ImgCAST.Visible = True

ElseIf Materia = "ANGL" Then

imgANGL.Visible = True

End If

Input #1, Dato01

txtDato01 = Dato01

Input #1, Dato02

txtDato02 = Dato02

Input #1, Dato03

txtDato03 = Dato03

Input #1, Dato04

txtDato04 = Dato04

Input #1, Dato05

txtDato05 = Dato05

Input #1, Dato06

txtDato06 = Dato06

Input #1, Dato07

txtDato07 = Dato07

Input #1, Dato08

txtDato08 = Dato08

Input #1, Dato09

txtDato09 = Dato09

Input #1, Dato10

txtDato10 = Dato10


Close

End Sub



Private Sub cmdNota_Click()

Dim ruta2 As String

Dim Solucion01 As String

Dim Solucion02 As String

Dim Solucion03 As String

Dim Solucion04 As String

Dim Solucion05 As String

Dim Solucion06 As String

Dim Solucion07 As String

Dim Solucion08 As String

Dim Solucion09 As String

Dim Solucion10 As String

ruta2 = "C:\LearnVisual\MiluTest_01\PlantillaSolucion.txt"

Open ruta2 For Input As #2

Input #2, Solucion01

Input #2, Solucion02

Input #2, Solucion03

Input #2, Solucion04

Input #2, Solucion05

Input #2, Solucion06

Input #2, Solucion07

Input #2, Solucion08

Input #2, Solucion09

Input #2, Solucion10

Close

Dim NotaNum As Integer

Dim Nota As String

Dim Respuesta01 As String

Dim Respuesta02 As String

Dim Respuesta03 As String

Dim Respuesta04 As String

Dim Respuesta05 As String

Dim Respuesta06 As String

Dim Respuesta07 As String

Dim Respuesta08 As String

Dim Respuesta09 As String

Dim Respuesta10 As String

Dim Resultado01 As Integer

Dim Resultado02 As Integer

Dim Resultado03 As Integer

Dim Resultado04 As Integer

Dim Resultado05 As Integer

Dim Resultado06 As Integer

Dim Resultado07 As Integer

Dim Resultado08 As Integer

Dim Resultado09 As Integer

Dim Resultado10 As Integer

Respuesta01 = txtRespuesta01

Respuesta02 = txtRespuesta02

Respuesta03 = txtRespuesta03

Respuesta04 = txtRespuesta04

Respuesta05 = txtRespuesta05

Respuesta06 = txtRespuesta06

Respuesta07 = txtRespuesta07

Respuesta08 = txtRespuesta08

Respuesta09 = txtRespuesta09

Respuesta10 = txtRespuesta10

If Respuesta01 = Solucion01 Then

Resultado01 = 1

img11.Visible = True

Else

Resultado01 = 0

img21.Visible = True

End If

If Respuesta02 = Solucion02 Then

Resultado02 = 1

img12.Visible = True

Else

Resultado02 = 0

img22.Visible = True

End If

If Respuesta03 = Solucion03 Then

Resultado03 = 1

img13.Visible = True

Else

Resultado03 = 0

img23.Visible = True

End If

If Respuesta04 = Solucion04 Then

Resultado04 = 1

img14.Visible = True

Else

Resultado04 = 0

img24.Visible = True

End If

If Respuesta05 = Solucion05 Then

Resultado05 = 1

img15.Visible = True

Else

Resultado05 = 0

img25.Visible = True

End If

If Respuesta06 = Solucion06 Then

Resultado06 = 1

img16.Visible = True

Else

Resultado06 = 0

img26.Visible = True

End If

If Respuesta07 = Solucion07 Then

Resultado07 = 1

img17.Visible = True

Else

Resultado07 = 0

img27.Visible = True

End If

If Respuesta08 = Solucion08 Then

Resultado08 = 1

img18.Visible = True

Else

Resultado08 = 0

img28.Visible = True

End If

If Respuesta09 = Solucion09 Then

Resultado09 = 1

img19.Visible = True

Else

Resultado09 = 0

img29.Visible = True

End If

If Respuesta10 = Solucion10 Then

Resultado10 = 1

img20.Visible = True

Else

Resultado10 = 0

img30.Visible = True

End If

NotaNum = Resultado01 + Resultado02 + Resultado03 + Resultado04 + Resultado05 + Resultado06 + Resultado07 + Resultado08 + Resultado09 + Resultado10

If NotaNum > 8 Then

Nota = "Excelente"

ElseIf NotaNum > 6 Then

Nota = "Notable"

ElseIf NotaNum > 5 Then

Nota = "Bién"

ElseIf NotaNum > 4 Then

Nota = "Suficiente"

Else

Nota = "Insuficiente"

End If

txtNota.Text = Nota

End Sub



dilluns, 2 de novembre del 2009

MiluTest 01

Es tracta d'un programet que fa 10 preguntes i s'han de contestar.
Si encertem apareix el Milú com un angelet. Si ens equivoquem apareix com un redimoni.
Al final suma els punts obtinguts i ens dona la nota.

De moment funciona però el codi és lamentable. En el fons es intencionadament lamentable ja que el objectiu serà anar-lo millorant reduint volum (actualment 782 caràcters) i millorant-ho en general. Per exemple, ara necessita llegir un fitxer de preguntes i un de respostes que s'han de dir d'una forma concreta i estar en una carpeta concreta. Intentarem que sigui un únic fitxer i que l'usuari el possi on vulgui. D'aquesta manera es podrà crear un executable que no tingui que estar en un lloc concret.

D'altra banda, ens servirà per practicar eines tipus while amb variables que aniran augmentant soletes (ja ho explicaré).

De moment, l'aparença (amb dos erors perquè es vegi com funciona):

dissabte, 3 d’octubre del 2009

Visual Basic 08. Cicle Superior de Primària. Estalviant codi

El mateix que en l'entrada anterior, però fent una mica el vago. Hem fet un nou procediment per escriure menys...


Private Sub
cmdDIR_Click()
'################################################################
'## Executarem un fitxer bat molt simple que conté
'## dir c:\*.avi /b /s >> avi.txt
'## exit
'##
'## dir c:\*.avi ens buscarà tots els videos avi que tenim en C:\
'## la /b fa que els fitxers apareguin sense més dades que el nom
'## la /s fa que es miri dins tots els subdirectoris
'## >> redirigeix, es a dir, en lloc de sortir en pantalla ho enviarà a altre lloc
'## avi.txt serà el fitxer on s'escriurà el resultat del dir
'##
'## i validarem que no existeix el fitxer avi.txt
'##
'## a banda, per evitar escriure el mateix varies vegades
'## crearem un nou procediment anomenat "Executem_el_bat"

'#############################################################

'ens situem en el directori on volem treballar i on hem dessat el bat
ChDir "C:\LearnAcces"
'declarem una variable
Dim stAppName As String
'mirem si el fitxer avi.txt existeix
If Dir$("avi.txt") = "" Then
'el fitxer avi.txt no existeix, ja que no hi ha resultat pel dir$, es a dir, ens ha donat ""
'per estalviar escriure dues vegades el codi, hem fet un nou procediment
Executem_el_bat
Else
'el fitxer avi sí existeix, ja que el resultat del dir$ no és ""
'simplement el matem amb kill
Kill ("avi.txt")
'ara tornem a fer el mateix que abans
Executem_el_bat
End If
End Sub
'##########################################################################
'Fem un procediment anomenat "Executem_el_bat" que ens estalviarà picar varies vegades el mateix codi
Private Sub Executem_el_bat()
'ara, en la variable creada, li donem tot el camí del executable i el mateix executable
stAppName = "C:\Learnacces\dir.bat"
'cridem a una funció molt xula, el shell del DOS que executa el bat
Call Shell(stAppName, 1)
End Sub

Visual Basic 07. Cicle superior de Primària. Existeix un fitxer + Shell

No comentaré gaire cosa ja que els comentaris cal introduir-los directament en el codi.
En qualsevol cas, el que farem serà executar un programa extern tot verificant que el fitxer resultant existeix o no.

dimecres, 30 de setembre del 2009

Visual Basic 06. Cicle Superior de Primària: Case i estalvi de línies

Per estalviar línies voldriem possar en la mateixa línia diferents opcions, però el IF no ens serveis quan treballem amb texte. Una solució és fer servir el Case: en cas de .. aleshores...

Estalviem codi i coneixem una nova instrucció:

dimarts, 29 de setembre del 2009

Visual Basic 05. Cicle superior de Primària. Endeví executable

Anem per parts com Jack l'esbudellador.

EXECUTABLE
Es a dir, farem que el nostre projecte visual basic es pugui fer servir en qualsevol ordinador sense tenir instal·lat ni Visual basic, ni Access ni res especial (això sí, cal Windows). Es molt fàcil. Dins Archivo busquem Generar ... els puntets són el nostre projecte, per això, en aquest cas diu Generar pydEndevi.



Us demanarà on deixar-ho. On li digueu, tindreu un fitxer exe que qualsevol podrà fer servir, però no podrà tocar el codi intern.

VARIABLE
Amb l'odre DIM hem creat una capseta de un tipus especial que ens serveix per fer coses.
En el nostre programa a aquesta capseta li hem anomenat parauleta i li hem dit que serveix sols per paraules, no per numeros.
Ho hem fet així:

Dim parauleta as String

Si haguessin volgut que fos per possar números, ho podriem haver fet així

Dim parauleta as Integer

Si diem que és string, sols serveix per possar lletres, si diem que és integer sols serveix per números. Recordeu que com els textbox estan fets per encabir lletres, quan vam fer la calculadora vam tenir que fer servir la funció Val per fer servir les lletres com si fossin números. Això és importatn, l'ordinador ha de saber si el que li diem volem que ho consideri lletra o número. Un exemple molt clar es que si al valor 007 (James Bond) ho considerem lletres (string) ens ho escriurá 007, però si li diem que és un número ens ho passarà a 7, ja que, com sabeu, els zeros a l'esquerra no es consideren,

Finalment, DIM es la forma abreujada de "dimensionar", es a dir, donar mides a un objecte.

IMATGE EN EL BOTONET

Simplement ens hem de fixar en possar el valor 1-Graphical en la propietat Style
En Picture naveguem per accedir a la foto que volguem.



SENSE BOTO NETEJAR

Hem fet servir el fet de que, quan ens possem dins el txtNom (el de dalt) es produeix un event (es a dir pasa alguna cosa). Quan el ratolí entra dins el textbox txtNom, l'ordinador diu Ah, vale! i esborra el que hi ha dins, (de fet més que esborrar, canvia el que hi ha en txtNom per el que hi ha entre les cometes, es a dir, no res.
El mateix fa amb el txtResposta. El codi -en vernell és aquest:

Private Sub txtNom_GotFocus()
'atenció, el gotfocus es refereix a que la capseta txtNom està rebent tota l'atenció, 'es a dir, li hem possat el ratolí a sobre. Quan ho detecta, 'es deixa net a si mateix i també la capseta 'de la resposta
txtNom = "" txtResposta = ""
End Sub

Al got focus hem accedir per la part dreta del editor de programació:



NOMS DELS FITXERS DEL PROJECTE
Es molt important. De moment ho veurem per sobre. Penseu que un projecte (extensió vbp)pot contenir molts formularis (extensió frm). Aquests són els dos més importants per donar un nom. Els altres són més secundaris i quasi automàtics.

El nostre cas ha quedat així:

Visual Basic 04. Cicle superior de Primària. L'endeví en Visual

Bé, ja hem pasat directament a Visual amb alguns petits canvis. De moment, una imatge i el codi comentat. En la propera entrada parlarem de com hem possat la foto de Gandalf en el botó (un xic més complicat que en Access), com hem deixat de fer servir el botó neteja, parlarem de la primera variable que hem fet servir, com crear un executable i com anomenar els diferents fitxers que s'han creat en VisuaBasic.





diumenge, 27 de setembre del 2009

Visual Basic 03. Cicle superior de Primària. L'endeví

Avui fem l'endeví. Al picar sobre el Gandalf ens respondrà en quin any va nèixer la persona que l'indiquem. Es una introducció al if. Aquesta estructura és:

IF ............... THEN
ELSE IF......THEN
(...)
ELSE ..........THEN
IF

Com sempre una imatge del programet i desprès el codi.
Truco: per possar la foto en el botonet de l'endeví heu d'anar a propiedades i fer servir un bmp. No serveix jpg.


dissabte, 26 de setembre del 2009

Visual Basic 02. Cicle superior de Primària. Calculadora en Access

Es podria fer també en Visual, de fet l'hem feta en Visual per Access.
Primer l'aparença. Fixeu-vos que és un formulari



Ara el codi. La part en verd és un comentari. Fixeu-vos que al principi de cada frase de color verd hi ha una cometa. Això fa que el programa no ho consideri i passi de llarg:



Finalment, fixeu-vos (ens hem de fixar molt, per això ho dic continuament) que les variables tenen minúscules i majúscules. Això ens permetrà, mentre programen, confirmar que ho estem fent bé. A banda, les tres primeres lletres sempre serveixen per saber quin tipus de control fem servir: CmdMultiplicar vol dir que es un botó per multiplicar. TxtCaixa1 vol dir que és el primer textbox.

divendres, 25 de setembre del 2009

Visual Basic 01. Fonaments

Entenc que les primeres pases, com en la vida, són més fàcils de fer que d'explicar, per tant, a practicar.
Abans de tenir la primera morrada és recomanable visitar els videos del profesor Pedro Pablo:

01 http://www.vimeo.com/4395415
02 http://www.vimeo.com/4395543
03 http://www.vimeo.com/4395577
04 http://www.vimeo.com/4395650
05 http://www.vimeo.com/4395731
06 http://www.vimeo.com/4395756
07 http://www.vimeo.com/4395804
08 http://www.vimeo.com/4395842
09 http://www.vimeo.com/4395885

Visual Basic 00. Cicle superior de Primària

Començo a fer aquest "curs" -per dir-li d'alguna forma- adreçat tant a nens de primària com a mi mateix SENSE TENIR NI IDEA DE VISUAL BASIC ni de programar.

Sovint, a la feina, he tingut necessitat de programar alguna cosa. Amb ajut de companys i de llibres ho resolia i, afectat com estic pel síndrome de Dolly (1), aconseguia -sense gaire esforç- oblidar-ho en un temps sorprenentment curt.

Entenc que el bloc pot ser una bona eina per documentar les troballes i no perdre-les en multitud de paperets, llibretes o ves a saber on.

En resum, que si a algú li ajuda, perfecte. Ja serem dos contents.

Un curs molt més professional -però més aburrit- el trobareu a:

http://www.xtec.net/formaciotic/dvdformacio/materials/td57/index.htm



(1) Malaltia documentada en la pel·lícula Buscando a Nemo
(2) Ara no recordo quina d'aquestes dues és la Dolly del Nemo
(3) Per cert, abans de fer cap pensament sobre la Dolly de la dreta...
"En 1996 Parton implementó un programa de alfabetización llamado Imagination Library (Biblioteca Imaginaria), en Tennessee, para hacer llegar a los niños, cada mes, desde el día de su nacimiento hasta cuando entren en el jardín de infantes, un libro apropiado para su edad. Anualmente distribuye 2.500.000 libros" Font Wikipedia