Ejercicios introductorios
a los formularios de Visual Basic Primer programa
Como siempre Hola
Mundo:
Al entrar en el
entorno de programación de Visual Basic (No en la versión
.Net) y crear un nuevo proyecto standard nos encontramos
con un formulario
form1
le damos
doble click y nos muestra la ventana de código que dice:
Private Sub Form_Load() End Sub
La modificamos para que diga lo siguiente:
Private Sub Form_Load()
Show
Saludo = "Hola gente linda"
Print Saludo
End Sub
Pulsa F5
Nota: En todos los FORM_LOAD
deberás poner SHOW al principio para que se muestre lo que se imprime.
Los eventos.
Añade al form dos Label, un
TextBox y un botón de comandos. El aspecto será algo parecido al de la siguiente
figura:

Añade el siguiente código y
después Pulsa F5. Private Sub Form_Load()
Label2 = ""
Text1 = ""
End Sub
Private Sub Command1_Click()
Label2 = "Hola " & Text1
End Sub
Cuando pulsas F5, se produce el
evento Form_Load, por tanto se asigna al Label2 y al Text1 una cadena vacía, con
lo cual borramos el contenido anterior, que es el que se muestra en la
Figura. Hasta que no pulsemos el botón mostrar, no ocurrirá nada Si
queremos que el texto tipeado aparesca todo en mayúsculas
a medida que lo tipeamos:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim s As String
s = UCase(Chr(KeyAscii))
KeyAscii = Asc(s)
End Sub
Convierte cada tecla
pulsada en mayúscula.
|
Ejemplo
de Hola
mundo en
el evento
paint (se
lo llama cuando se repinta/redibuja la ventana)
'En el ejercicio anterior si minimizamos y restauramos la ventana nos daremos
cuenta 'Que se borra el texto, para evitar eso hacemos
uso de este evento.
Private Sub Form_Paint()
Form1.Print "Hola Visual Basic."
End Sub
'Le agregamos el botón cerrar.
'El nombre del botón por defecto es : Command1.
'Hacemos doble click sobre el botón y escribimos :
Private Sub Command1_Click()
Unload Form1
End Sub
'Centramos nuestro formulario
Private Sub Form_Load()
Form1.Left = (Screen.Width - Width) / 2 ' Centra horizontalmente.
Form1.Top = (Screen.Height - Height) / 2 ' Centra verticalmente.
End Sub
' Para
el siguiente ejemplo de ingreso de un password
' necesita arrastrar desde la caja de herramientas (toolbox) ' que se encuentra
a la izquierda 2 textboxes y 1 command button
Private Sub Form_Load()
Command1.Enabled = False 'deshabilita el botón
End Sub
Private Sub Text1_Change()
If Text1.Text = "" Then
Command1.Enabled = False 'deshabilita el botón sin texto
Else
Command1.Enabled = True 'Habilitar el botón
End If
Text2.Text = Text1.Text 'Actualiza el text2
End Sub 'a medido que se cambia text1
Private Sub Command1_Click()
MsgBox "Texto 1: " & Text1.Text & " y texto 2 " & Text2.Text
Unload Form1
End Sub
Pulse F5 para probar el código.
' Utilización del picture box para ver imagenes. '
debe arrastrar (en realidad seleccionar y colocar)
un picturebox
' en el formulario que hará de contenedor de nuestra imagen.
Private Sub Command1_Click()
On Error GoTo fallo:
Picture1.Picture = LoadPicture("C:\Windows\azteca.bmp")
Exit Sub
fallo:
MsgBox "Error, fichero no encontrado."
End Sub
' Ejemplo de uso del msgbox para ingreso de datos.
Private Sub Command1_Click()
Dim Resp As Integer
Resp = MsgBox("Hola" & vbCrLf & "Esto es un ejemplo."_ , vbQuestion + vbYesNo + vbDefaultButton2, "Ejemplo")
If Resp = 6 Then
MsgBox "Ha pulsado SI"
Else
MsgBox "Ha pulsado NO"
End If
End Sub
Nota: el símbolo "_" sirve para continuar una línea en el renglón siguiente si es muy larga.
' Uso del InputBox para ingreso de texto
Private Sub Command1_Click()
Dim Val As String
Val = InputBox("Deme su nombre", "Ejemplo")
MsgBox "Su nombre es: " & Val
End Sub
' El siguiente es un ejercicio que ejemplifica el uso del editor de menús ' Trabajar con diálogos, abrir y Guardar archivos desde Visual Basic
'Haga click en el formulario una vez y pulse las teclas Ctrl+E.
'Escriba lo siguiente:
'Caption: &Abrir
'Name: menuAbrir
'Pulse el botón Siguiente.
'Caption: &Guardar
'Name: menuGuardar
'Pulse el botón Siguiente.
'Caption: &Salir
'Name: menuSalir
'Ponga un TextBox en el formulario y escriba las siguientes propiedades:
'Text: ""
'Multiline: True
'ScrollBars: Vertical
'En el control CommonDialog escriba: (agregar el componente - Ctrl + T)
'InitDir: C:\
'CancelError: True (checked)
' Uso del CommonDialog para abrir y guardar archivos
' Un pequeño editor
' Menu: Salir
Private Sub menuSalir_Click()
Dim Respuesta As Integer
Respuesta = MsgBox("¿Desea salir del editor?", 36, "Editor")
If Respuesta = 6 Then
Unload Form1
End If
End Sub
'Menu Abrir
Private Sub menuAbrir_Click()
Dim nLen, nCanal As Integer
On Error GoTo error
CommonDialog1.DialogTitle = "Abrir archivo"
CommonDialog1.Filter = "Archivos de Texto (*.txt;*.wri;*.me;*.bbs)|*.txt;*.wri;*.me;*.bbs|Todos los ficheros(*.*)|*.*"
CommonDialog1.ShowOpen
nCanal = FreeFile
Open CommonDialog1.filename For Binary As #nCanal
nLen = LOF(nCanal)
Texto$ = Space$(nLen)
Get #nCanal, , Texto$
Text1.Text = RTrim$(Texto$)
Close #nCanal
Exit Sub
error:
'Escribe o gestiona el error aquí si quieres
Exit Sub
End Sub
'Menu Guardar
Private Sub menuGuardar_Click()
Dim nCanal As Integer
On Error GoTo error
CommonDialog1.DialogTitle = "Guardar archivo"
CommonDialog1.Filter = "Archivos de Texto (*.txt;*.wri;*.me;*.bbs)|*.txt;*.wri;*.me;*.bbs|Todos los ficheros(*.*)|*.*"
CommonDialog1.ShowSave
nCanal = FreeFile
Open CommonDialog1.filename For Output As nCanal
Print #nCanal, Text1.Text
Close #nCanal
Exit Sub
error:
'Escribe o gestiona el error aquí si quieres
Close #nCanal
Exit Sub
End Sub
Pulsamos Ctrl+E y pinchamos una vez con el ratón sobre &Salir y pulsamos el botón Insertar.
Escribimos las siguientes propiedades:
Caption: &Editor
Name: mnuEditor
Pinche otra vez con el ratón sobre &Salir y pulsamos el botón Insertar.
Pulse ahora sobre el botón con la punta de flecha hacia la derecha: -->
Caption: &Seleccionar Todo
Name: mnuSeltodo
Pinche otra vez con el ratón sobre &Salir y pulsamos el botón Insertar.
Pulse ahora sobre el botón con la punta de flecha hacia la derecha: -->
Caption: &Copiar texto
Name: mnuCopiar
Pinche otra vez con el ratón sobre &Salir y pulsamos el botón Insertar.
Pulse ahora sobre el botón con la punta de flecha hacia la derecha: -->
Caption: &Pegar texto
Name: mnuPegar
Pinche otra vez con el ratón sobre &Salir y pulsamos el botón Insertar.
Pulse ahora sobre el botón con la punta de flecha hacia la derecha: -->
Caption: C&ortar texto
Name: mnuCortar
Añada el siguiente código en General -
declaraciones:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Y las siguientes líneas:
Private Sub mnuSeltodo_Click()
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
Private Sub mnuCopiar_Click()
Clipboard.Clear
Clipboard.SetText Text1.SelText
Text1.SetFocus
End Sub
Private Sub mnuPegar_Click()
Text1.SelText = Clipboard.GetText()
Text1.SetFocus
End Sub
Private Sub mnuCortar_Click()
Clipboard.SetText Text1.SelText
Text1.SelText = ""
Text1.SetFocus
End Sub
Private Sub mnuUndo_Click()
UndoResultado = SendMessage(Text1.hwnd, &HC7, 0&, 0&)
If UndoResultado = -1 Then
Beep
MsgBox "Error al intentar recuperar.", 20, "Undo"
End If
End Sub
Private Sub Form_Resize()
Text1.Left = 0
Text1.Top = 0
Text1.Height = Form1.ScaleHeight - StatusBar1.Height
Text1.Width = Form1.ScaleWidth
End Sub
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
' Button=1 --> botón izquierdo
' Button=4 --> botón central
' Button=2 --> botón derecho
If Button = 2 Then
Text1.Enabled = False
Text1.Enabled = True
PopupMenu mnuEditor
Text1.SetFocus
End If
End Sub
|