|
Visual Basic-4
27.- Juego de dados
Dim puntos1, puntos2
Private Sub Command1_Click()
Randomize Timer
a = Int(Rnd * 6) + 1
b = Int(Rnd * 6) + 1
c = a + b
Label1.Caption = a
Label2.Caption = b
Label4.Caption = c
If c = 7 Then puntos1 = puntos1 + 1
Label5.Caption = puntos1
Command2.Enabled = True
Command1.Enabled = False
End Sub
Private Sub Command2_Click()
Randomize Timer
a = Int(Rnd * 6) + 1
b = Int(Rnd * 6) + 1
c = a + b
Label1.Caption = a
Label2.Caption = b
Label4.Caption = c
If c = 7 Then puntos2 = puntos2 + 1
Label6.Caption = puntos2
Command1.Enabled = True
Command2.Enabled = False
End Sub
Private Sub Command3_Click()
puntos1 = 0
puntos2 = 0
Label5.Caption = 0
Label6.Caption = 0
End Sub
Private Sub Form_Load()
Command2.Enabled = False
End Sub
|
Juego de dados
Atención : los dos cuadrados blancos de arriba no
son TextBox, sino Label, llamados Label1 y Label2. Tienen
color blanco de fondo. El Label4 es el que está a
la derecha de Suma :.
|
Condicionales y operadores lógicos
| IF a > b THEN ... |
SI a es mayor que b
ENTONCES... |
| IF a >= b THEN ... |
SI a es mayor o igual que b
ENTONCES ... |
| IF a <= b THEN ... |
SI a es menor o igual que b
ENTONCES ... |
| IF a > 7 AND a < 24 THEN ... |
| SI a es mayor que 7 Y
a es menor que 24 ENTONCES ... |
| IF a > 7 AND b > 30 THEN ... |
| SI a es mayor que 7 y
b es mayor que 30 ENTONCES ... |
| IF a = 5 OR b = 9 THEN |
| Si a es igual a 5 O b
es igual a 9 ENTONCES ... |
| IF a$="Pedro"
OR a$="Juan" THEN ... |
| SI a$
es Pedro O a$ es Juan ENTONCES ... |
| IF a="Juan" AND edad >=
18 THEN ... |
| SI a es Juan Y edad es
mayor o igual que 18 ENTONCES ... |
|
Operadores Lógicos
(Interpreta estas Líneas)
C = A AND B
D = A OR B
E = Not A
F = A Xor B
True = -1
False = 0
|
28.- Puertas lógicas
|
Puertas Lógicas
Cuando pulsamos sobre los botones, su correspondiente Textbox
cambia a 0 y 1 alternadamente.
En la salida debemos obtener el resultado.
Los dibujos de las puertas son un Image. Lo puedes bajar
de aquí puerta.gif
|
Podríamos utilizar variables Booleanas que tienen
como valores True y False.
En este caso la variable utilizada cambia, mediante el
Not entre
0 y -1.
Para obtener el valor 1 se aplica la función Abs(
)
Tienes que declarar las variables.
|
|
|
' Presento el Código de la puerta AND y O-EXCLUSIVA, las demás puertas se
' deja como ejercicio. La O-EXCLUSIVA se podría haber realizado mediante
' Xor. SE = EX1 Xor EX2
Dim AN1, AN2
Dim EX1, EX2
' PUERTA AND
Private Sub Command1_Click()
AN1 = Not (AN1)
A1.Text = Abs(AN1)
SA.Text = Abs(AN1 And AN2)
End Sub
Private Sub Command2_Click()
AN2 = Not (AN2)
A2.Text = Abs(AN2)
SA.Text = Abs(AN1 And AN2)
End Sub
' PUERTA O-EXCLUSIVA
Private Sub Command5_Click()
EX1 = Not (EX1)
E1.Text = Abs(EX1)
SE.Text = Abs((EX1 And Not (EX2)) Or (Not (EX1) And EX2))
End Sub
Private Sub Command6_Click()
EX2 = Not (EX2)
E2.Text = Abs(EX2)
SE.Text = Abs((EX1 And Not (EX2)) Or (Not (EX1) And EX2))
End Sub
|
|
|
Estudia la suma acumulativa :
Anueva = Aantigua
+ 1
A = A + 1
B = B + 5
Text1.Text = Text1.Text & " Hola "
De esta manera se agrega al valor anterior de Text1 la palabra
" Hola "
Text1.Text = "Visual"
Text1.Text= Text1.Text & " Basic"
Ahora el Text1.Text valdrá "Visual Basic"
|
29.- Divisores
Divisores de un número

|
Private Sub Command1_Click()
Text2.Text = ""
x = Val(Text1.Text)
If x < 1 Or x > 50 Then
a = MsgBox("No válido", vbOKOnly, "Entrada incorrecta")
Else
For n = 1 To x
z = x Mod n
If z = 0 Then Text2.Text = Text2.Text & n & "-"
Next n
End If
End Sub
|
30.- Intermitente
|
|
Dim cambi As Boolean
Private Sub HScroll1_Change()
Timer1.Interval = HScroll1.Value
End Sub
Private Sub Timer1_Timer()
cambi = Not (cambi)
If cambi = True Then Shape1.FillColor = QBColor(10)
If cambi = False Then Shape1.FillColor = QBColor(12)
End Sub
|
|
En Propiedades del HScroll1:
Max = 2000
Min = 100
Poner el FillStyle del Shape1 en Solid
|
31.- Mueve
|
Mueve el Check1
Ponemos WindowState= 2 para que salga la pantalla completa.
Check1.Move H, V mueve el
Check.
En vez de 100 se puede poner otro número.
|
|
|
Mejoras :
Cuando lo ejecutes podrás observar que se puede
salir de la pantalla por los cuatro lados.
Modifica el programa para que no se salga de la pantalla
cuando llegue a los extremos.
Actuar sobre :
Form1.Top
Form1.Left
Form1.Height
Form1.Width
|
Dim H, V
Private Sub Form_Load()
Form1.WindowState = 2
End Sub
Private Sub Abaj_Click()
V = V + 100
Check1.Move H, V
End Sub
Private Sub Arri_Click()
V = V - 100
Check1.Move H, V
End Sub
Private Sub Dere_Click()
H = H + 100
Check1.Move H, V
End Sub
Private Sub Izqui_Click()
H = H - 100
Check1.Move H, V
End Sub
|
Otros controles .ocx y .dll
|
|
Además de los controles básicos que encontramos
por defecto en el cuadro de herramientas, podemos utilizar
otros controles.
Para ello vamos a Proyecto/Componentes/Controles y nos encontramos
con conjuntos de ellos.
Vamos a insertar (marcar)
Windows Media Player es
el wmp.dll (En Windows 98 MSDXM.OCX)
Los OCX y algunas .DLL son controles de Visual Basic.
Podemos buscar *.ocx en Internet.
|
|
|
Private Sub Command1_Click()
WindowsMediaPlayer1.URL = "E:\multi\video.avi"
End Sub
|
|
Como he comentado anteriormente los archivos.OCX son controles
de Visual Basic. Vamos a verlos :
Ve a Buscar archivos en tu
disco duro y busca : *.ocx. Te
saldrán controles.OCX que tienes en tu ordenador y
que utiliza Visual Basic o Windows. La mayoría estarán
en C:\Windows\System (o en \Windows\System32).
También algunas *.dll se pueden utilizar como controles
de Visual Basic.
En Internet puedes encontrar muchos controles.OCX, ve
a un buscador y escribe -ocx free download- te saldrán
páginas de donde puedes bajar archivos OCX.
1.- Aquí te pongo un control ocx BÁJATELO
y guárdalo en la carpeta C:\MisOCX de tu disco duro
rotater.ocx (69 K)
2.- Ahora entra en Visual Basic y en Proyecto/Componentes/Controles/Examinar
Entra en la carpeta C:\MisOCX que es donde lo has guardado,
márcalo y dale la botón Abrir.
3.- A continuación en la ventana de Controles tendrás
activado en citado control como Sidewalk
Rotater Control, dale a Aplicar y este control aparecerá
en la caja de controles.

4.- Saca el mencionado control al Formulario de Visual
Basic.
5.- Entra en la Propiedad (Personalizado)
del mencionado control y cambia algunos valores, colores,
las Face Zero, One, Two son las caras. Se pueden poner letras
y dibujos en cada una de las tres caras.
De esta manera hemos bajado un control ocx de Internet
y lo hemos insertado en nuestro Proyecto.
Hay muchos controles en Internet algunos son gratuitos
y otros son comerciales.
|
|
Aquí tienes otro ejemplo de OCX. Alguien, en este caso
una empresa, se ha dedicado a construir un botón con
cierta personalidad. Y ha realizado un OCX. Luego lo ha puesto
en Internet por si alguien lo quiere utilizar. (Si quieres
ser un buen profesional de Visual Basic deberás aprender
a construir controles.OCX)
1.- Aquí te pongo otro control ocx BÁJATELO
y guárdalo en la carpeta C:\MisOCX de tu disco duro
Btnenh4.ocx. (404 K)
2.- Ahora entra en Visual Basic y en Proyecto/Componentes/Controles/Examinar
Entra en la carpeta C:\MisOCX que es donde lo has guardado,
márcalo y dale la botón Abrir.
3.- A continuación en la ventana de Controles tendrás
activado en citado control como Active
Multimedia Button Control, dale a Aplicar y este control
aparecerá en la caja de controles.
4.- Saca el mencionado control al Formulario de
Visual Basic.
5.- Entra en la Propiedad (Personalizado)
del mencionado control y cambia algunos valores. Podrás
configurar un botón de distintas formas, colores, estilos,
.....
Puede ocurrir que un control.ocx no funcione porque no
esté registrado, para registrarlo busca el programa
Regsvr32.exe
Luego en Inicio/Ejecutar poner : Regsvr32.exe control.ocx
|
|
Sólo Windows 98
Aquí tienes otro Control, en este caso viene como
un archivo dll.Vtext.dll (169 K)
Microsoft Direct Text-to-Speech.
Private Sub Command1_Click()
TextToSpeech1.Speak ("Escribe una frase")
End Sub
Escribe una frase y te la pronuncia, con acento inglés.
Busca en Internet el Español. |
|
W98
Veamos otro control Multimedia lo puedes encontrar en el
CDROM de VisualBasic/os/System/MCI32.OCX,
aunque también lo puedes bajar de aquí MCI32.OCX
(194 K)
Aunque podemos poner los controles en cualquier directorio,
normalmente se guardan en C:\Windows\System,
guárdalo ahí y luego en Visual Basic marca :
Proyecto/Componentes/Controles/Microsoft
Multimedia Control 6.0
En el formulario situa un botón, un PictureBox y el
MMControl.
Luego en el botón escribe éste código
:
Private Sub Command1_Click()
MMControl1.DeviceType = "AVIVideo"
MMControl1.FileName = "C:\Pon-un-archivo.avi"
MMControl1.Command = "open"
MMControl1.hWndDisplay = Picture1.hWnd
MMControl1.Command = "play"
End Sub
Calendario MSCAL.ocx
|
¿Qué son las API de Windows?
Voy a intentar explicarlo de una manera sencilla.
Comencemos con los archivos.dll, (Dinamic Link Libraries) en
su interior hay una serie de funciones que un programa puede utilizar.
Supongamos que tenemos un archivo llamado Operaciones.dll
y en su interior hay 4 funciones: Suma, Resta, Multiplica y Divide.
|
Function Operaciones.dll
Suma (X,Y)
R = X + Y
Return
Resta (X,Y)
R = X - Y
Return
Multiplica (X,Y)
R = X * Y
Return
Divide (X,Y)
R = X / Y
Return
End Function
|
Pues un programa puede acudir a cualquiera de esas funciones.
Primero tendría que declarar la Función de esta manera
:
Private Declare Function Suma
Lib "Operaciones" (X as Single,
Y as Single) as Single
Esto quiere decir que le hemos de suministrar dos parámetros
(a,b) y él nos devolverá la solución de tipo
Single.
Lo haríamos de esta manera :
C = Suma (3,4)
Evitentemente, C tomaría el valor 7, que es la suma de
3 y 4.
Las API de Windows son una serie de archivos dll que tiene Windows
y que nosotros las podemos utilizar, algunas de ellas son :
kernel32.dll, gdi32.dll, user32.dll podemos encontrar muchas
más, además los programas que instalamos en nuestro
ordenador también nos añaden más archivos.dll.
Entra en tu buscador de Windows y escribe *.dll
|
El ejemplo trata de lo siguiente : Tomamos el archivo
User32.dll de Windows 98, que
contiene muchas funciones, una de ellas es SwapMouseButton,
que permuta los botones derecho e izquierdo del ratón.
Declaramos la Función que vamos a utilizar (SwapMouseButton)
y el archivo donde se encuentra (User32.dll)
Si llamamos (Call) a esta función SwapMouseButton
(0) nos pondrá el ratón normal
Si llamamos (Call) a esta función SwapMouseButton (1)
nos pondrá el ratón al revés.
Así que hemos tomado el archivo de Windows "User32.dll"
para utilizar una de sus funciones SwapMouseButton
|
|
|
Private Declare Sub SwapMouseButton Lib "User32" (ByVal N As Integer)
Private Sub Diestro_Click()
Call SwapMouseButton(0)
End Sub
Private Sub Zurdo_Click()
Call SwapMouseButton(1)
End Sub
Private Sub Hola_Click()
Text1.Text = "Hola"
End Sub
Private Sub Adios_Click()
Text1.Text = "Adios"
End Sub
|
Las dll además de funciones pueden contener dibujos,
iconos u otro tipo de datos. A los que pueden acceder cualquier
aplicación de Windows.
Con este programas puedes ver el contenido de las dll: depends.zip
(403 K)
Claro que para saber qué significa cada función y
como puedes acceder a ellas tendrás que profundizar.
Insertar un gif animado en un
formulario de Visual Basic.
Te bajas éste archivo: Gif89.dll
(43 K)
Luego: Proyecto / Componentes... / Controles Botón: Examinar
Tipo: Todos los archivos (*.*) ----> Gif89.dll
Aplicar.
Insertamos el control en el Formulario y en la Propiedad Filename
ponemos la dirección absoluta del gif animado.
Editor de texto Editor.exe
(20 K)
Ahora vas a construir un Editor de texto.
Vas a insertar nuevos controles CommonDialog y CommonControl, vas
a utilizar el Editor de menús, y una API de Windows. No es
necesario que aprendas todo lo que vas a realizar, pero te recomiendo
que construya el siguiente Proyecto.
Baja el archivo Editor.zip (140 K) , descomprímelo
y obtendrás un archivo.doc. Sigue las instrucciones y en
un par de horas habrás construido un Editor de texto que
te sorprenderá.
|