CURSO BASICO DE VISUAL BASIC 6.0

En qué consiste Visual Basic

 

 

Estructura de una aplicación en Visual Basic

Una Aplicación (Project) ise compone de:

Como se hace un programa en Visual Basic

    1. Dibujar las pantallas (user interface)
    2. Asignar las properties a los controles
    3. Escribir el código para los controles
  • Por ejemplo:
  • Dibujar la User Interface y Asignar las Properties

  • · Visual Basic funciona en tres modos:.
  • Nos enfocaremos en el design mode.

  •  
  • · Al partir Visual Basic, la pantalla se divide en seis ventanas:

  •  

     

     

     

    1. Doble-click en el control de la toolbox y aparecerá con su tamaño default sobre la form. Luego puede ser movido o cambiado de tamaño.
    2. La otra forma es dar un solo click sobre el control y luego dibujarlo con el mouse sobre la form. Ambos métodos dan el mismo resultado.

    Ejemplo 1-1

    Un Cronómetro - Dibujando los controles

  • 1. Parta un nuevo proyecto. La idea de este proyecto es partir un cronómetro. Luego detenerlo y mostrar el tiempo transcurrido en segundos

    2. Coloque tres command buttons y seis labels dentro de la form. Mueva y dimensione los controles hasta obtener algo así:

  • Colocando propiedades a los objetos en tiempo de diseño

  • Cada objeto del Visual Basic tiene sus properties asignadas por default . Al hacer click sobre un objeto (form o control) este pasa a ser el objeto activo y sus propiedades son listadas en la pantalla correspondiente. En este ejemplo vemos las propiedades de la form

  •  

     

    Una propiedad muy importante de cada uno de los objetos es name. El nombre que usa el Visual Basic para referirse a ese objeto en particular

  • Ejemplo de nombres

    En estos ejemplos se usa una convención usual del Visual Basic, pero podemos colocar el nombre como se nos antoje

    Form frm frmWatch

    Command Button cmd, btn cmdExit, btnStart

    Label lbl lblStart, lblEnd

    Text Box txt txtTime, txtName

    Menu mnu mnuExit, mnuSave

    Check box chk chkChoice

    · Los nombres de objetos pueden tner hasta 40 caracteres, deben partir con una letra y contener solo letras, números o guión bajo (_)

  • Colocando propiedades en Run Time

  • Para colocar las propiedades en run time se deben asignar por medio de un código, en el formato
  • ObjectName.Property = NewValue

    (por ejemplo form1.visible=false)

    Como se usan los nombres de los objetos

  • · Los nombres que colocamos a los objetos sirven de "marco" para los procedimientos a los que se les agrega código. El formato para las subrutinas (todos los object procedures en Visual Basic son subrutinas) es:
  • Sub ObjectName_Event (Optional Arguments)

    .

    .

    End Sub

  • · Visual Basic coloca la linea Sub con sus argumentos (si los hay) ay la End Sub automáticamente. Nosotros debemos escribir el código entre ambas lineas.
  • Ejemplo 1-2

    Cronómetro - Colocando las Propiedades

  • 1. Coloque las siguientes propiedades a la form, los tres buttons, y los seis labels (activando cada uno de los objetos con un click y modificando el valor en la ventana de propiedades):
  • Form1:

    BorderStyle 1-Fixed Single

    Caption Stopwatch Application

    Name frmStopWatch

    Command1:

    Caption &Start Timing

    Name cmdStart

    Command2:

    Caption &End Timing

    Name cmdEnd

    Command3:

    Caption E&xit

    Name cmdExit

    Label1:

    Caption Start Time

    Label2:

    Caption End Time

    Label3:

    Caption Elapsed Time

    Label4:

    BorderStyle 1-Fixed Single

    Caption [Blank]

    Name lblStart

    Label5:

    BorderStyle 1-Fixed Single

    Caption [Blank]

    Name lblEnd

    Label6:

    BorderStyle 1-Fixed Single

    Caption [Blank]

    Name lblElapsed

  • En la propiedades Caption de los tres command buttons, note el ampersand (&). Este sirve para fijar una access key. Esto es para usar (además del click del mouse) el método Alt-tecla

    2. Su form debe verse ahora más o menos así:

  • Variables

    Tipos de datos en Visual Basic

  • Sufijos de tipo de dato

    Boolean Ninguno

    Integer %

    Long (Integer) &

    Single (Floating) !

    Double (Floating) #

    Currency @

    Date Ninguno

    Object Ninguno

    String $

    Variant Ninguno

  • Declaración de las Variables

  • · Hay tres maneras de declarar una variable:
      1. Default
      2. Implicit
      3. Explicit
  • · Si las variables no son implicita o explicitamente declaradas se les asigna el tipo variant por default. Una variable tipo variant puede contener datos numéricos, string o date indistintamente.

    · Para declarar implicitamente una variable, se usa el correspondiente suffix, por ejemplo,

  • TextValue$ = "This is a string"

  • crea una variable string
  • Amount% = 300

    crea una variable integer.

  • · Hay muchas ventajas en declarar explicitamente las variables. Primero que nada aseguramos que los cálculos se hacen apropiadamente y los errores de tipeo son más fáciles de trazar, Visual Basic se cuidará de asegurar la consistencia en las mayúsculas y minúsculas usadas en los nombres, etc.

    · Para declarar explicitamente una variable, debemos determinar su scope (alcance). Hay cuatro niveles de alcance:

  • · Dentro de un procedure, las variables se declaran usando Dim:
  • Dim MyInt as Integer

    Dim MyDouble as Double

    Dim MyString, YourString as String

  • Las variables a nivel de Procedure declaradas de esta manera no retienen su valor después de terminado el procedure.

    · Para hacer que una variable a nivel de procedure retenga su valor al terminar este, reemplace Dim por Static:

  • Static MyInt as Integer

    Static MyDouble as Double

     

  • · Las variables a nivel de Form (module) retienen su valor y están disponibles para todos los procedures dentro de la form (module). Las variables a este niovel se declaran en la sección declarations del objeto general de la form (venbtanilla de código). Se usa la sentencia Dim :
  • Dim MyInt as Integer

    Dim MyDate as Date

  • · Las variables a nivel Global retienen su valor y están disponibles para todos los procedures de la aplicación. Se declaran en la parte declarations del objeto general de un módulo. (Se recomienda colocar todas las variables globales en un mismo módulo.) Use la sentencia Global:
  • Global MyInt as Integer

    Global MyDate as Date

    Ejemplo 1-3

    Cronómetro - Agregando Código

    Lo último que nos queda es colocar código a los objetos. Escribimos código para cada uno de los eventos que necesitamos en la aplicación. en este ejemplo tenemos tres eventos, cada uno parte haciendo un click sobre cada uno de los botones.

    1. Doble-click en cualquier espacio desocupado sobre la form para que aparezca la ventana donde escribiremos el código.
    2. En la ventanilla superior de objetos seleccional el objeto llamado (general). La ventanilla de Procedure mostrará (declarations). Aquí declaramos tres variables a nivel de form:
    3. Option Explicit

      Dim StartTime As Variant

      Dim EndTime As Variant

      Dim ElapsedTime As Variant

      Option Explicit nos fuerza a declarar todas las variables. Las demás líneas establecen las variables StartTime, EndTime, yElapsedTime como globales dentro de la form.

    4. Selecccione el objeto cmdStart en la Object box. Si el procedimiento que aparece no es el Click procedure, escoja Click de la procedure box. Tipee el siguiente código que se ejecutará cuando presione el botón cmdStart. Note que Sub y End Sub son colocados por defecto por el editor:
    1. Sub cmdStart_Click ()

      ‘Establish and print starting time

      StartTime = Now

      lblStart.Caption = Format(StartTime, "hh:mm:ss")

      lblEnd.Caption = ""

      lblElapsed.Caption = ""

      End Sub

      En éste procedure, una vez que el botón Start Timing es clickeado con el mouse, leemos la hora actual y la mostramos en una label box. Además borramos todas las demás label boxes. Las líneas que comienzan con comilla simple son comentarios (no ejecutables)

    Ahora, codifique el buttom cmdEnd

    1. Sub cmdEnd_Click ()

      ‘Find the ending time, compute the elapsed time

      ‘Put both values in label boxes

      EndTime = Now

      ElapsedTime = EndTime - StartTime

      lblEnd.Caption = Format(EndTime, "hh:mm:ss")

      lblElapsed.Caption = Format(ElapsedTime, "hh:mm:ss")

      End Sub

      Aquí, cuando se hace click sobre End Timing, leemos la hora actual (End Time), calculamos el tiempo transcurrido, y escibimos los valores en las correspondientes label boxes.

    1. Finalmente para el button cmdExit
    2. Sub cmdExit_Click ()

      End

      End Sub

      Esta rutina simplemente termina el programa cuando se hace click sobre el botón Exit .

    3. Notará que el editor chequea automáticamente la sintaxis a medida que usted escribe, esta característica es extremádamente util como verá al codificar aplicaciones más complejas ya que recuerda nombres de variables, completa sentencias, etc.
    4. Para ejecutar la aplicación presione F5 o el botón Run en la toolbar (similar al "play" de una grabadora)
    5. Para grabar la aplicación use Save Project As del menú File. Esto grabará tanto la form como los archivos del proyecto.
    6. Otras cosas que podría hacer con ésta primera aplicación:
    1. Pruebe cambiando los colores de la form y las características de los fonts en los label boxes y command buttons.

    Consideraciones al grabar un proyecto en Visual Basic:

    Cuando se graba un proyecto, deben guardarse los archivos de las (.FRM) los modules (.BAS) y el archivo de proyecto (.VBP). Asegúrese que se están guardando en el directorio deseado.

    Existen cuarto tipos de Save en el menú File

  • Save [Form Name] Graba la form o el módulo con el nombre actual. Se graba el archivo "activo" esto es el que está iluminado en laventana Project.

    Save [Form Name] As Igual que la anterior, le da la opción de cambiar el nombre

    Save Project Graba todas las forms y modules del proyecto usando sus nombres actuales, además guarda el archivo project.

    Save Project As Igual que el anterior pero permite cambiar los nombres de archivos a cada uno de los archivos que se graban. Por eso se recomienda su uso para los proyectos nuevos

  • Ejercicio 1

    Calendario/Reloj

    Diseñe un calendario/reloj. Juegue con las propiedades para obtener una bonita apariencia.

    Ejemplo:

    Form:

     

    Properties:

    Form frmCalendar:

    Caption = My Calendar

    BorderStyle = 1 - Fixed Single

    Timer timDisplay:

    Interval = 1000

    Label lblDay:

    Caption = Sunday

    FontName = Times New Roman

    FontBold = True

    FontSize = 24

     

    Label lblTime:

    Caption = 00:00:00 PM

    FontName = Times New Roman

    FontBold = True

    FontSize = 24

    Label lblYear:

    Alignment = 2 - Center

    Caption = 1998

    FontName = Times New Roman

    FontBold = True

    FontSize = 24

    Label lblNumber:

    Alignment = 2 - Center

    Caption = 31

    FontName = Arial

    FontBold = True

    FontSize = 72

    Label lblMonth:

    Alignment = 2 - Center

    Caption = March

    FontName = Times New Roman

    FontBold = True

    FontSize = 24

     

    Code:

    General Declarations:

  • Option Explicit
  • timDisplay Timer Event:

  • Private Sub timDisplay_Timer()

    Dim Today As Variant

    Today = Now

    lblDay.Caption = Format(Today, "dddd")

    lblMonth.Caption = Format(Today, "mmmm")

    lblYear.Caption = Format(Today, "yyyy")

    lblnumber.Caption = Format(Today, "d")

    lblTime.Caption = Format(Today, "h:mm:ss ampm")

    End Sub