|
Visual Basic-2
Variables numéricas
y alfanuméricas
a = 4564
temp = 32.5
b$ = "Yo soy una variable alfanumerica" (STRING)
n$ = "34" : REM El "34" es alfanumérico
(STRING)
n = 34 : REM El 34 es numérico
En VB no es necesario declarar las variables, sin embargo es una
buena práctica el declararlas.
Si al principio del Programa ponemos Option
Explicit, nos obligamos a declarar todas las variables que
vamos a utilizar.
Declarar una variable significa darla a conocer
antes de utilizarla. Las variables se declaran al principio del
programa o de una subrutina mediante: DIM
DIM a, temp, b$
Hay diversos tipos de variables INTEGER, LONG, CURRENCY, STRING
También podemos declarar las variables diciendo de qué
tipo es:
DIM a AS INTEGER
DIM temp AS LONG
DIM b$ AS STRING
DIM euro AS CURRENCY
Si no decimos de qué tipo es, se le asigna el tipo VARIANT
que puede ser numérica o alfanumérica según
convenga.
Una tabla o matriz es un conjunto de
variables que tienen el mismo nombre pero distinto subíndice
:
DIM a(7)
Crea éstos elementos : a(0), a(1), a(2), a(3), a(4), a(5),
a(6), a(7)
Ámbito de las variables
Una variable es válida solo en el sitio en el que se declara.
Para que una variable sea reconocible por las Subrutinas de un formulario,
hay que declararla al principio.(General)
Private Sub rutina1()
a = 1234
PRINT a * 2
End Sub
Private Sub rutina2()
PRINT a * 3
End Sub |
En éste caso la variable "a" vale 1234
y al poner PRINT a * 2 me escribirá 2468
En la subrutina2 se quiere imprimir a * 3, pero la variable
no es la "a" anterior porque está en otra
subrutina, luego se escribirá un 0 o se indicará
un error.
|
|
DIM a
Private Sub rutina1()
a = 1234
PRINT a * 2
End Sub
Private Sub rutina2()
PRINT a * 3
End Sub
|
Ahora la subrutina2 escribirá a * 3 , 3702, porque
reconoce a la variable "a", ya que está declarada
al principio. Es decir, la "a" la reconocen todas
las subrutinas.
|
Cómo poner los controles.
1.- Abre un nuevo Proyecto:
Archivo/Nuevo Proyecto/ EXE estándar

2.- En la parte izquierda vemos los controles u
objetos, en el centro está el Formulario (Form) y a la derecha
el explorador de proyectos y las Propiedades.
Las demás ventanas las puedes eliminar.
Si quieres volver a ver algunas pulsa Ver.

3.- Ésta es la ventana de Códigos. Aquí
escribiremos el programa:

4.- Con estos iconos podemos pasar de la ventana
del Formulario a la ventana de Códigos

5.- Para poner un Control pulsa sobre ese Control.

6.- Suelta y ve al formulario. Pulsa sobre un punto
del formulario y, sin soltar el botón izquierdo, arrástralo.

Sabemos que un Control tiene
Propiedades aquí ponemos algunas.
Botón :
Calcula.Enabled = False
| (Nombre) |
Calcula |
| Caption |
Pulsame |
| Font |
Tipo de letra |
| BackColor |
Color |
| Style |
Graphic |
| Visible |
True |
| Enabled |
True |
| ToolTipText |
Ayudita |
| Picture |
Gráfico |
| DownPicture |
Gráfico-Pulsado |
Textbox :
Text1.Text = "Hola"
X = VAL(Text2.Text)
| (Nombre) |
Casilla |
| Text |
|
| Alignement |
Right
|
| Font |
Tipo de letra |
| Multiline |
True |
| Visible |
True |
| Scrollbar |
En caso de multiline |
| Locked |
Modificable o no |
| MaxLength |
Max. Longitud |
| Passwordchar |
********* |
| ToolTipText |
Ayudita |
Etiqueta :
Label1.Caption ="Miércoles"
Scroll :
X = HScroll1.Value
| Max |
Valor Máximo |
| Min |
Valor Mínimo |
| Value |
Valor |
Picture :
Picture1.Picture = LoadPicture ("C:\Dado\dado3.bmp")
| Picture |
Localización de la Imagen |
La Imagen se carga en tiempo de ejecución
mediante
Picture1.Picture = LoadPicture("C:\Dado\dado3.bmp") |
Timer :
Timer1.Interval = 2000
| Interval |
Tiempo en milisegundos |
Check :
IF Check1.Value = 0 THEN res = 1234
Option :
IF Option1.Value = True THEN r = "abc"
Si durante la ejecución del programa
queremos cambiar una propiedad pondríamos :
Control.Propiedad
Calcula.Caption = "Púlsame"
Calcula.Visible = False
Casilla.Text = "1234"
Casilla.Visible = True
Text1.Text = 23.45
Label1.Caption = "Jueves"
IF HScroll1.Value = 12 THEN Boton1.Enabled = False
X = VAL(Text2.Text) * 345
El formulario también tiene Propiedades
Formulario
| BorderStyle |
Redimensionable o no. Con Título o no. |
| Caption |
Título del Formulario |
| Icon |
Icono |
| BackColor |
Color de fondo |
| MaxButton |
Maximizar |
| MinButton |
Minimizar |
| Moveable |
Formulario movible o no. |
| Picture |
Dibujo de fondo |
Private Sub Calcula_Click ( )
a = VAL(Casilla.text)
doble = 2* a
End Sub
Fíjate lo que hay en Casilla.text, o sea el "1234"
NO es un número, sino los caracteres "1", "2",
"3" y "4". Para convertilos al número
1234 ponemos VAL(Casilla.text),
VAL convierte carácteres a número.
En principio NO podemos multiplicar los caracteres "1234"
por el número 2, o sea, no podemos hacer :
doble = 2 * "1234" Daría un error ..........
En fin ...... de todos modos ..... el Visual Basic es tan permisivo
que lo permite... :
Conversión implícita
de variables
Si tenemos una variable de un tipo y la operamos con otra variable
de otro tipo, el resultado depende de los tipos y de la operación
realizada.
Numeric = 22222
Alfanume = "4"
x = Numeric * Alfanume.
Nos dará 88888, es decir, ha realizado una multiplicación
de un número. Ha convertido automáticamente la variabla
Alfanume a una variable numérica para realizar la operación.
También se puede convertir una variable
alfanumérica a numérica mediante VAL
a = 4
b$ = "33"
c = VAL(b$)
d = a + c
Incluso podemos poner :
Text2.Text = Text1.Text * 234 / 567
Probar también c =
CDbl(b$)
|
|
PROYECTOS
En ésta y las siguientes páginas
te presento unos 50 proyectos de Visual Basic.
En éste archivo
los he puesto comprimidos. Aunque te recomiendo que escribas
cada uno y que leas los comentarios:
todoslosproyectos.zip
(lo pondré pronto, por ahora me lo puedes
pedir por correos)
|
|
1.- Controles : Botones y Cajas de Textos
 |
Private Sub Azul_Click()
Text1.Text = "Soy Azul"
End Sub
Private Sub Rojo_Click()
Text2.Text = "Soy Rojo"
End Sub
Private Sub Borra_Click()
Text1.Text = ""
Text2.Text = ""
End Sub
|
2.- Etiquetas, Cajas de textos
y botón
Explica qué hace este Proyecto :
¿Qué hace la Propiedad: Alignement en un Textbox?
 |
Private Sub Calcula_Click()
r = Val(Text1.Text)
l = 2 * 3.1416 * r
a = 3.1416 * r * r
Text2.Text = l
Text3Text = a
End Sub
|
3.- Frames, Etiquetas, Cajas de textos
y Botón.
En los Textbox poner :
Alignement = Right
Text =
Font= Negrita, 12
 |
Private Sub Calcula_Click()
C = Val(Text1.Text)
i = Val(Text2.Text) / 100
a = Val(Text3.Text)
T = C * (1 + i) ^ a
Text4.Text = T
End Sub
|
Un EVENTO es algo que puede suceder
como : Click, MouseMove, Change, Load
En el Proyecto anterior cambia el evento Click ( ) a MouseMove,
ahora el programa se ejecutará cuando muevas el ratón
sobre el botón sin necesidad de pulsar.
La Sub rutina Calcula_MouseMove se
ejecuta cuando se mueve el ratón sobre el botón.

Vamos a modificar el Proyecto.
Cortemos lo que hay dentro del Calcula_MouseMove
y Copiémoslo dentro de la Subrutina del Text3_Change.
¿Qué ocurre ahora? Pues que los cálculos se
realizarán cuando Change el Text3,
o sea, cuando Cambie el valor del Text3
Private Sub Calcula_Click()
End Sub
Private Sub Text3_Change()
C = Val(Text1.Text)
i = Val(Text2.Text) / 100
a = Val(Text3.Text)
T = C * (1 + i) ^ a
Text4.Text = T
End Sub
|
4.- Control : HScroll (Al Moverlo cambia
el Value)
' Poner HScroll1 Max=255
' Poner HScroll1 Min=32
Private Sub HScroll1_Change()
C = HScroll1.Value
Text1.Text = C
Text2.Text = Chr$(C)
End Sub
|
 |
5.- Control : VScroll
Private Sub VScroll1_Change()
cent = Val(VScroll1.Value)
fahr = 32 + 1.8 * cent
txtCent = cent
txtFahr = fahr
End Sub
|
 |
Propiedades de VScroll1
Max = 100
Min = -100
|
|
6.- Colores
A los controles se les pone nombres identificativos, por ejemplo en
vez de poner HScroll1 se le llama hsrR.
|
HScroll1
|
hsrR
|
|
Text1
|
txtR
|
|
Label4
|
lblR
|
|
HScroll2
|
hsrV
|
|
Text2
|
txtV
|
|
Label5
|
lblV
|
|
HScroll3
|
hsrA
|
|
Text3
|
txtA
|
|
Label6
|
lblA
|
|
|
|
|
Text4
|
txtCarta
|
|
Label7
|
lblSuma
|
En las Propiedades de cada HScroll debes poner:
Max = 255
Min = 1
 |
Dim x, y, z
Private Sub hsrR_Change()
x = Val(hsrR.Value)
txtR.Text = x
lblR.BackColor = RGB(x, 0, 0)
lblsuma.BackColor = RGB(x, y, z)
txtCarta.ForeColor = RGB(x, y, z)
End Sub
Private Sub hsrV_Change()
y = Val(hsrV.Value)
txtV.Text = y
lblV.BackColor = RGB(0, y, 0)
lblsuma.BackColor = RGB(x, y, z)
txtCarta.ForeColor = RGB(x, y, z)
End Sub
Private Sub hsrA_Change()
z = Val(hsrA.Value)
txtA.Text = z
lblA.BackColor = RGB(0, 0, z)
lblsuma.BackColor = RGB(x, y, z)
txtCarta.ForeColor = RGB(x, y, z)
End Sub
|
7.- Controles : Label, Scroll,
Line y Shape
|
El VScroll1 en Propiedades:
Max = 12
Min = 1
El VScroll2 en Propiedades:
Max = 300
Min = 1
El dibujo del circuito está realizado mediante Shape
y Line
Mover primero el scroll de la resistencia.
|
 |
Dim r, v, i As Currency
Private Sub vsrR_Change()
r = Val(vsrR.Value)
Label6.Caption = r
i = v / r
Label4.Caption = i
End Sub
Private Sub vsrV_Change()
v = Val(vsrV.Value)
Label5.Caption = v
i = v / r
Label4.Caption = i
End Sub
|
8.- Controles : Check y Option
En las Propiedades del Text1
Poner
Multiline=True |
|
vbCrLf es para
cambiar de línea en el casillero Text1 También
se puede poner
Chr(13) & Chr(10)
El guión _ es para cambiar de línea en el código. |
Dim beb, com
Private Sub Command1_Click()
com = ""
If Check1.Value = 1 Then com = "Ensalada,"
If Check2.Value = 1 Then com = com & "Carne,"
If Check3.Value = 1 Then com = com & "Pescado,"
If Check4.Value = 1 Then com = com & "Fruta."
Text1.Text = "De comidas: " & com & vbCrLf & _
" y de bebida: " & beb
End Sub
Private Sub Option1_Click()
beb = "Agua."
End Sub
Private Sub Option2_Click()
beb = "Vino."
End Sub
Private Sub Option3_Click()
beb = "Cerveza."
End Sub
|
9.- Control : Combo (Lista desplegable)
| En la Propiedad List del Combo1, poner la lista
de nombres |
 |
| Fíjate que el evento es Click |
Private Sub Combo1_Click()
Text1.Text = Combo1
End Sub
|
10.- Controles : Drive, Dir,
File e Image
|
Poner:
un Drive
un Dir
un File
un Image
En Propiedades del File
poner :
Pattern=*.bmp; *.gif; *.jpg
En Propiedades del Image poner :
Strech = True
|
|
| |
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub File1_Click()
Image1.Picture = LoadPicture(File1.Path & "\" & File1.FileName)
End Sub
|
| |
Hacerlos ejecutables.exe
Una vez que has realizado algunos programas en VB, habrás
observado que los archivos se guardan con extensión
.vbp y .frm.
Por cierto, si quieres guardar el proyecto entero en otra
carpeta debes guardar los dos archivos:
Archivo/Guardar proyecto como ..............................
juego.vbp
Archivo/Guardar juego.frm como .............................
juego.frm
¿Pero, cómo puedo
hacer los programas ejecutables.exe?
Así de sencillo:
Archivo / Generar tuprograma.exe
Pero si te llevas el archivo tuprograma.exe
a otro ordenador, es posible que no funcione, para ello Te
recomiendo que leas este documento:
Empaquetamiento
de programas.doc = Cómo hacer programas ejecutables
y empaquetarlos.
|
|