El documento introduce el lenguaje de programación Visual Basic. Explica que Visual Basic es un lenguaje visual para crear interfaces gráficas de usuario y es adecuado para principiantes. Describe conceptos básicos como objetos, eventos, formularios y controles en Visual Basic.
2. Introducción
Un lenguaje de programación actúa como un traductor entre el
usuario y el equipo. En lugar de aprender el lenguaje nativo
del equipo (conocido como lenguaje máquina), se puede
utilizar un lenguaje de programación para dar instrucciones al
equipo de un modo que sea más fácil de aprender y entender.
3. ¿Qué es el lenguaje de programación?
Visual basic es un lenguaje de programación de los llamados "visuales",
puesto que parte de la programación que se realiza con él se basa en la
utilización de elementos visuales. La palabra "visual" hace referencia al
método que se utiliza para crear la interfaz gráfica de usuario.
Se ha considerado como el lenguaje adecuado para principiantes en el
mundo de la programación, si bien se le achaca que no tiene la potencia
suficiente para cubrir todas las expectativas de los programadores
avanzados.
5. Objeto
Se designa como objeto cualquier elemento, por
ejemplo, un formulario, una imagen, un control, tal
como una caja de texto.
Evento
Formulario
Método
Los métodos son un conjunto de procedimientos
que permiten que un objeto ejecute una acción o
tarea sobre sí mismo.
Un evento es la ocurrencia de un suceso,
comúnmente la acción que realiza el usuario sobre
el objeto, que como resultado puede.
Un formulario es una ventana de Windows la cual
usaremos para interactuar con el usuario, ya que
en dicha ventana o formulario, estarán los
controles y demás objetos gráficos que
mostraremos al usuario de nuestra aplicación.
6. La caja de
controles
PictureBox: Caja de imágenes
Label: Etiqueta
TextBox: Caja de texto
Frame: Marco
CommandButton: Botón de comando
CheckBox: Casilla de verificación
OptionButton: Botón de opción
ComboBox: Lista desplegable
ListBox: Lista
HScrollBar: Barra de desplazamiento horizontal
VScrollBar: Barra de desplazamiento vertical
Timer: Temporizador
DriveListBox: Lista de unidades de disco
DirListBox: Lista de directorios
FileListBox: Lista de archivos
Shape: Figura
Line: Línea
Image: Imagen
Data: Conexión a origen de datos
OLE: Contenedor de documentos embebidos
compatibles con Object Linking and Embedding
7. Asistentes
Son cuadros de diálogo que automatizan
tareas basándose en preguntas y respuestas.
Compiladores
Es un sistema que convierte el programa que usted
escribió en una aplicación que la computadora pueda
ejecutar.
Propiedades
Son los datos que hacen referencia a un objeto
o formulario.
Módulo
Visual Basic proporciona varios módulos que permiten
simplificar tareas comunes en el código, como
manipulación de cadenas, realización de cálculos
matemáticos, obtención de información del sistema,
realización de operaciones de archivo y directorio, etc.
8. ESTRUCTURAS DE CONTROL
Se utilizan para controlar el flujo del programa
en una rutina o función.
Estas estructuras permiten controlar, mediante
una condición, la ejecución o no de una línea
o conjunto de líneas de código.
9. Estructura IF–THEN–ELSE
Permite,
mediante una
condición, que
se ejecute o no
determinada
tarea o línea de
código.
If condición Then
Sentencia o
grupo de
sentencias
Else
Sentencia o
grupo de
sentencias End If
SINTAXIS:
11. Estructura While–Wend
Esta estructura
repetirá, sin
detenerse,
determinado
código mientras
se cumpla una
condición.
While condición
Sentencia o
grupo de
sentencias
Wend
SINTAXIS:
13. Se suele utilizar para evitar el uso de muchas cláusulas If y
de esta manera no tener que anidarlas.
La cláusula Select evalúa una condición y las cláusulas
case contienen valores. Si el valor que contiene la cláusula
case es igual a la condición que se evaluó, ejecutarán las
instrucciones en dicho case.
Estructura SELECT–CASE
14. Estructura SELECT–CASE
SINTAXIS:
Select Case variable_control
Case Valor_1
Sentencia o grupo de sentencias
Case Valor_2
Sentencia o grupo de sentencias
Case Valor_3
Sentencia o grupo de sentencias
End Select
16. Estructura FOR–NEXT
Es utilizada para
generar una repetición
de instrucciones o
bucle entre un número
inicial y un número
final que se le debe
indicar al mismo.
For variable_contador
= valor_inicial To
valor_final
Sentencia o grupo
de sentencias
Next variable_contador
SINTAXIS:
18. Establecen reglas para el código subsiguiente, ayudando a
prevenir errores sintácticos y de lógica
La sentencia Option Explicit asegura que todas las variables están
declaradas y escritas correctamente
Evita que todas las variables declaradas sean de tipo Object
Las variables se declaran usando Dim, Private, Public, or ReDim
Option Explicit On ‘ Fuerza la declaración explícita de variables
Dim MyVar As Integer ' Declara variable.
MyInt = 10 ‘ Genera error al no estar la variable declarada
MyVar = 10 ' Variable declarada por lo que no genera error
Sentencias Option I
19. La sentencia Option Strict ayuda a prevenir errores lógicos y de
perdida de datos que ocurren cuando se trabaja con variables de
diferente tipo.
Prohíbe conversiones implícitas
Option Strict On ‘ Fuerza a declarar variables también
Dim MyVar As Integer ' Declara variables.
MyVar = 1000 '
‘ Intento de convertir Integer a float genera error
MyVar = 1234567890.987654321
Sentencias Option II
20. La sentencia Option Compare establece la manera en la que los
strings son comparados, por formato binario (basado en la
representación binaria interna de los datos) o textual (case
insensitive).
‘ Establece el modo de comparación a binario
Option Compare Binary ' Esto es, "AAA" es menor que "aaa".
' Establece el modo de comparación a textual
Option Compare Text ' Esto es, "AAA" es igual a "aaa"
Sentencias Option III
21. Permiten nombrar clases y otros tipos definidos en los espacios de
nombres importados (o assemblies) sin tener que especificar el
cámino absoluto a ellas.
Imports [ aliasname = ] namespace o
Imports [ aliasname = ] namespace.element
Si no se especifica alias los elementos definidos en el namespace se referencian
sin prefijo y si no prefijados con el alias
Se pueden especificar varios Imports en un programa y deben de aparecer antes
de las sentencias Module y Class
Imports Str = Microsoft.VisualBasic.Strings
' Coloca Imports al comienzo de tu programa
Class MyClass1
Sub ShowHello()
MsgBox(Str.Left(“Hola", 5)) ' Visualiza "Hola"
End Sub
End Class
Sentencias Imports
22. “Punto de comienzo" de una aplicación — el primer
procedimiento accedido cuando ejecutas tu código.
Algunas de las tareas que puedes llevar a cabo dentro del
código del Main:
Cargar un formulario
Averiguar si alguna copia de tu programa existe
Abrir una conexión a una base de datos
Cuatro variedades:
Sub Main() la más común
Sub Main(ByVal CmdArgs() As String)
Function Main() As Integer
Function Main(ByVal CmdArgs() As String) As
Integer
Procedimiento Main
23. La mayoría del código de un aplicación VB
lo definen las clases y los módulos
Contienen sentencias:
Sub
Function
Event
Declaraciones de variables y otras partes del
código necesarias para hacer que tu aplicación se
ejecute.
Sentencias Class, Module y
Namespace
24. Declara el nombre de una clase, así como la definición de
variables, propiedades, eventos y métodos que la
componen
[ <attrlist> ] [ Public | Private | Protected | Friend |
Protected Friend ] [ Shadows ] [ MustInherit |
NotInheritable ]
Class name
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Sentencia Class I
25. Public sin restricciones de acceso
Private entidad accesible sólo en contexto en que es
declarada
Protected accesible dentro de una clase o en hija de ella
Friend accesible sólo dentro del programa que contiene la
declaración de la entidad
MustInherit no se pueden crear instancias de esta clase
NotInheritable no se permite más herencia
name nombre de la clase
Inherits esta clase deriva de classname
classname (requerido) nombre de la clase de la que deriva
Implements esta clase implementa una interfaz
interfacename nombre de la interfaz derivada
Sentencia Class II
26. statements variables, propiedades, eventos y métodos
dentro de la clase
End Class termina un bloque de clase
Cada atributo en attrlist tiene la siguiente sintáxis y partes:
attrname [({ attrargs | attrinit })], attrlist
Parts
attrname (requerido) nombre del atributo
attrargs (optional) lista de argumentos del atributo
attrinit (opcional) lista de campos o propiedades para
inicializar el atributo, si hay varios separados por comas
Sentencia Class III
27. Clases sin modificador de acceso son declaradas Friend
por defecto
Todo elemento dentro de una clase es por defecto público
(métodos) excepto campos y constantes que son privados
Ejemplos:
Public Class ThisClass
' [declaración de variable, propiedad,
método y eventos]
End Class
Sentencia Class IV
28. Ejemplo simple herencia:
Public Class ThisClass
Inherits AnotherClass
' Añade código para sobreescribir, sobrecargar o
extender miembros
' hereda de AnotherClass.
...' Declaraciones de variable, propiedad, método, y
eventos
End Class
Ejemplos declaración clases
29. [ <attrlist> ] [ Default ] [ Public | Private |
Protected | Friend | Protected Friend ] _
[[ ReadOnly | WriteOnly ] [ Overloads | Overrides ] _
[ Overridable | NotOverridable ] | MustOverride |
Shadows | Shared ] _
Property varname([ ByVal parameter list ]) [ As
typename ] [ Implements interfacemember ] [
<attrlist> ] Get
[ block ]
End Get
[ <attrlist> ] Set(ByVal value As typename )
[ block ]
End Set
End Property
Declaración de Propiedad
30. Dim se usa para declarar espacio de almacenamiento
para variables
Ejemplos de uso:
Dim AnyValue, MyValue As Object
' Los números se inicializan por defecto a 0.
Dim Number As Integer
Dim FirstNumber, SecondNumber, ThirdNumber As Integer
Dim MyDate As Date, MyValue As Single, MySwitch As Boolean
' DayArray es un array de 51 Objects indexados de 0 a 50.
Dim DayArray(50) As Object
' Matrix2 es un array bidimensional de tipo entero
Dim Matrix2(3, 4) As Integer
Declaración de variable
31. Const define constantes
Ejemplos de uso:
Const MyConst As Integer = 459
' Declara una constante pública de tipo string
' disponible sólo a nivel de clase
Public Const MyString As String = "HELP"
' Declara una constante privada de tipo Integer
Private Const MyInt As Integer = 5
Declaración de constantes
32. Sintáxis:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If ó
If condition Then [ statements ] [ Else
elsestatements ]
Sentencias If
33. Dim Number, Digits As Integer
Dim MyString As String
Number = 53 ' Inicializa variable.
If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
Digits = 2
Else
Digits = 3
End If
If Digits = 1 Then MyString = "One" Else MyString =
"More than one"
Ejemplo If
34. Dim Number As Integer = 8
Select Number ' Evalúa número.
Case 1 To 5 ' Número entre 1 y 5
Debug.WriteLine(“Entre 1 y 5")
Case 6, 7, 8 ' Número entre 6 y 8
Debug.WriteLine(“Entre 6 y 8")
Case 9 To 10 ' Número entre 9 y 10
Debug.WriteLine(“Mayor que 8")
Case Else ' Otros valores
Debug.WriteLine(“No entre 1 y 10")
End Select
Sentencia Select … Case
35. Dim Counter As Integer = 0
While Counter < 20 ‘ Evaluar el valor de
Counter.
Counter += 1 ' Incrementar Counter.
End While ' Finalizar cuando counter=20
Debug.WriteLine (Counter) ' Imprime 20
Sentencias iterativas (While)
36. Dim Words, Digit As Integer
Dim MyString As String
For Words = 10 To 1 Step -1 ' Realizar 10
repeticiones
For Digit = 0 To 9 ' Otras 10
MyString = MyString & CStr(Digit)
'Añadir num a string
Next Digit ' Incrementar counter
MyString = MyString & " " ' Añadir un space.
Next Words
Sentencias iterativas (For)
37. Module Test
Sub F()
Try
G()
Catch e As Exception
Console.WriteLine("Exception in F: " & e.Message)
e = New Exception("F")
' Relanzar excepción.
Throw e
End Try
End Sub
Excepciones I
38. Sub G()
Throw New Exception("G")
End Sub
Sub Main()
Try
F()
Catch e As Exception
Console.WriteLine("Exception in Main: " &
e.Message)
End Try
End Sub
End Module
Excepciones II
39. Delegate Function DoubleFunc(x As Double) As Double
Class A
Private f As New DoubleFunc(AddressOf Square)
Overloads Shared Function Square(x As Single) As
Single
Return x * x
End Function
Overloads Shared Function Square(x As Double) As
Double
Return x * x
End Function
End Class
Delegates
40. Public Class EventSource
' Declara un evento
Public Event LogonCompleted(ByVal
UserName As String)
Sub CauseEvent()
' Lanza un evento después de login
correcto.
RaiseEvent LogonCompleted(“Deusto")
End Sub
End Class
Eventos
41. Interface ICustomerInfo
' Declaración de una interfaz
Property CustomerName() As String
Sub UpdateCustomerStatus()
Event UpdateComplete()
End Interface
Ejemplo complejo clases I
42. Public Class CustomerInfo
' CustomerInfo implementa interfaz IcustomerInfo
Implements ICustomerInfo
Private CustomerNameValue As String ' Para guardar el valor de la propiedad
Public Event UpdateComplete() Implements ICustomerInfo.UpdateComplete
Public Property CustomerName() As String Implements _
ICustomerInfo.CustomerName
Get
Return CustomerNameValue
End Get
Set(ByVal Value As String)
CustomerNameValue = Value ' Guarda el valor del atributo.
End Set
End Property
Public Sub UpdateCustomerStatus() Implements _
ICustomerInfo.UpdateCustomerStatus
' Añadir código para modificar estado cuenta
' Lanzar evento para indicar que este método se ha ejecutado.
RaiseEvent UpdateComplete()
End Sub
End Class
Ejemplo complejo clases II
43. ‘ Métodos para probar clase
Public Sub TestImplements()
Dim Cust As New CustomerInfo()
' Asociar manejador para eventos lanzados por objeto
Cust
AddHandler Cust.UpdateComplete, AddressOf
HandleUpdateComplete
' Asignar valor a la propiedad CustomerName
Cust.CustomerName = “Diego"
' Recuperar y visualizar valor propiedad
MsgBox(“Nombre cliente: " & Cust.CustomerName)
' Invoca UpdateCustomerStatus para lanzar evento
UpdateComplete event.
Cust.UpdateCustomerStatus()
End Sub
Ejemplo complejo clases III
45. Declara el nombre de un espacio de nombres
Namespace { name | name.name }
[componenttypes ]
End Namespace
componenttypes contiene enumeraciones, estructuras,
interfaces, clases, módulos, delegates y otros espacios de
nombres
similares a paquetes en Java
Sentencia Namespace
46. Declaración namespaces anidados:
Namespace N1 ' Declara espacio de nombres N1.
Namespace N2 ' Declara espacio de nombres N2 dentro de N1.
Class A ' Declara una clase dentro de N1.N2.
' Añade una clase.
End Class
End Namespace
End Namespace
Lo mismo en una sola línea:
Namespace N1.N2 ' Declara dos espacios de nombres: N1 y N2.
Class A ' Declara una clase dentro de N1.N2.
' Añade una clase aquí.
End Class
End Namespace
Ejemplo Namespaces
47. [ <attrlist> ] [{ Overloads | Overrides |
Overridable | NotOverridable | MustOverride |
Shadows | Shared }]
[{ Public | Protected | Friend | Protected Friend |
Private }]
Sub name [(arglist)]
[ Implements interface.definedname ]
[ statements ]
[ Exit Sub ]
[ statements ]
End Sub
Procedimientos con Sub I
48. Lista de atributos de este procedimiento
Overloads Este procedimiento (método) sobrecarga otro
declarado en una clase base
Overrides sobreescribe método de clase base
Overridable/NotOverridable método puede [NO] ser
sobrecargado
MustOverride método es abstracto, debe ser sobreescrito por
clase que deriva
Cada argumento en arglist tiene el siguiente formato:
[ <attrlist> ] [ Optional ] [{ ByVal | ByRef }]
[ ParamArray ] argname[( )] [ As argtype ]
[ = defaultvalue ]
Procedimientos con Sub II
49. ' Procedure Sub procedure con dos argumentos.
Sub SubComputeArea(ByVal Length As Double, ByVal
Width As Double)
Dim Area As Double ' Declara variable local.
If Length = 0 Or Width = 0 Then
' Si algún argumento es 0, salir del procedure
Exit Sub ' Exit Sub immediately. ‘ equivalente
a Return
End If
Area = Length * Width ' Calcula área del
rectángulo.
Debug.WriteLine(Area)
' Imprime valor de área.
End Sub
Ejemplo Sub
50. Sintáxis similar a Sub pero devuelve un valor
' Procedure Sub con dos argumentos.
Public Function CalcSum(ByVal ParamArray Args() As Double) As
Double
Dim I As Integer
CalcSum = 0
If Args.Length <= 0 Then Exit Function ' No se han pasado args.
For I = 0 To UBound(Args, 1)
CalcSum += Args(I)
Next I
End Function ' Devuelve último valor de CalcSum.
La función puede ser llamada como:
Dim ReturnedValue As Double
ReturnedValue = CalcSum(4, 3, 2, 1)
' Args(0) = 4, Args(1) = 3, and so on.
Sentencia Function
51. Pueden aparecer en cualquier lugar en un
módulo.
Se ejecutan si ciertas condiciones se cumplen
Se pueden también usar para hacer debugging
de tu aplicación, es la única situación en la que
se ejecutan.
Sentencias de compilación
condicional
52. Hola Mundo en VB.NET
' fichero: hola.vb
' compilar: vbc hola.vb
Imports System
module Hello
sub main()
Console.WriteLine(“Hola desde VB.NET”)
end sub
end module
53. Para compilar y ejecutar desde línea de
comando:
Crear código fuente usando un editor de texto y
llamarlo hola.vb.
Invocar el compilador, escribiendo el comando: vbc
hola.vb
Si no hay errores de compilación, el compilador genera
el fichero hola.exe
Para ejecutar el comando escribir: hola
Compilando y ejecutando Hola
Mundo