lenguaje de programacion visual basick 0.6.docx

Upload: beatriz-toledo-andia

Post on 22-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    1/37

    1.1. Declaracin de variables

    1.2. Constantes

    1.3. Declaracin de matrices

    1.4. Expresiones y operadores

    2. Estructuras de seleccin

    2.1. Sentencia IF !"E# E$SE

    2.2. Estructura SE$EC! C%SE

    3. Estructuras iterativas

    3.1. Instruccin F&' !& #E(!

    3.2. Instruccin D& $&&)

    4. Controles b*sicos

    3.1. Introduccin al uso de controles

    3.2. Controles b*sicos

    3.3. Eventos

    +. Formularios

    +.1. )ropiedades

    +.2. ,tili-acin de multiples ormularios

    +.3. Comunicacion entre ormularios

    /. Contantes y unciones de 0isual asic

    /.1. Constantes

    /.2. Funciones matem*ticas

    /.3. Funciones aleatorias

    /.4. Funciones de cadenas de caractres

    /.+. Funciones de ecas

    /./. Funciones de comprobacin

    /.. &tras unciones

    /.5. $as unciones Inputox y 6s7ox

    . El editor de men8s

    http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227689http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227690http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227691http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227692http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227693http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227694http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227695http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227696http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227697http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227698http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227699http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227700http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227701http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227702http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227703http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227704http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227705http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227706http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227707http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227708http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227709http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227710http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227711http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227712http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227713http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227714http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227715http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227716http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227690http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227691http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227692http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227693http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227694http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227695http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227696http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227697http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227698http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227699http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227700http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227701http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227702http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227703http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227704http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227705http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227706http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227707http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227708http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227709http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227710http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227711http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227712http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227713http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227714http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227715http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227716http://www.corazondejesusza.net/apuntes/Visual%20Basic.htm#_Toc145227689
  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    2/37

    1. Tipos de datos y expresiones

    1 . 1 . Dec larac in de var iab le sAntes de utilizar un dato en nuestros programas, es necesario declararlo. Este dato

    puede ser variable, con lo cual podr cambiar de valor a lo largo del programa, oconstante, en cuyo caso su valor ser el mismo a lo largo de todo el programa y no

    podr modificarse. La forma de declarar las variables es la siguiente:

    Dim| Public| Staticnombre9variableAstipo

    Dim:Al declarar una variable con esta palabra estamos diciendo que la variable serlocal al mbito en que se declara. Puede ser dentro de un procedimiento o dentro de unformulario; de esta forma no ser accesible desde los dems procedimientos oformularios.

    Public: Las variables declaradas sern publicas y podrn estar accesibles desde

    todos los formularios de la aplicacin.Static:!on esta forma de declarar variables conseguiremos que las variables locales

    no se creen y se destruyan al entrar y salir de los procedimientos donde fuerondeclaradas sino que se mantenga su valor durante todo el periodo de e"ecucin de laaplicacin. #e esta forma al entrar en alg$n procedimiento las variables recuerdan elvalor que ten%an cuando se sali de &l.

    Los tipos de variables que se pueden utilizar en 'isual (asic se muestrean en la tablasiguiente.

    TIPOS DE VARIABES

    TIPO !O"E#TARIO

    ())LEA* +lo admite valores: -/E o 0AL+E

    (1-E admite valores enteros entre 2 y 33

    4*-E5E admite valores enteros entre 6789 y 7898

    L)*5valores enteros entre .aciendo es decir al procesador que reserve

    una posicin de memoria para guardar un dato. La cantidad de memoria reservadadepender del tipo de variable que >ayamos indicado. Es importante tener en cuenta que

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    3/37

    siempre debemos utilizar el tipo de variable ms peque?a posible, pues de esta formaestaremos consumiendo la menor cantidad de memoria. Por e"emplo, si queremos crearuna variable en la que se guardar la edad de una persona, bastar con que la variablecreada al efecto sea de tipo byte.

    1 . $ . !%ns t ant es/na constante es aquel dato que tendr el mismo valor a lo largo de todo el

    programa. Para declarar una constante, se procede de la forma siguiente:

    !%nstnombre9constanteAstipo : valor

    donde nombre9constantees el nombre que queramos dar a la constante, tipoes uno delos tipos de la tabla anterior y valores el valor que tendr la constante. El siguientee"emplo declara una constante llamada P4 a la que se asigna el valor 7,

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    4/37

    Dimtalero!de!ar"os(7, 7) asoolean

    +i te >as fi"ado bien >abrs podido observar que >emos separado con el s%mbolo las palabras FtableroG FdeG FbarcosG; ello es debido a que el nombre de una variable no

    puede estar formado por ms de una palabra, por lo que >ay que unirlas de algunaforma para >acer creer al ordenador que se trata de una sola palabra.

    1 . ' . E()res i%nes * %)erad%res/na e@presin es un con"unto de operandos y operadores que una vez evaluados

    devuelven un resultado. En 'isual (asic >ay cuatro tipos de operadores: aritm&ticos,relacionales, lgicos y de te@to. Los operadores relacionales son aquellos que devuelvenvalores de tipo (olean, es decir, su resultado ser 'erdadero o 0also.

    TIPOS DE OPERADORES

    Aritmticos Relacionales Lgicos De texto

    Poten"ia"i#n $ Ig%al &%e = 'ot 'ega"i#n - Distinto a * +nd

    S%ma resta , - .enor &%e /r

    .%lti0li"a"i#n diisi#n , .enor o ig%al &%e =

    Diisi#n entera .aor &%e *

    esto de la diisi#n .od .aor o ig%al &%e *=

    Los operadores aritm&ticos y los relacionales no necesitan mayor aclaracin. Lafuncin de los operadores lgicos y de te@to es la siguiente:

    'otBe@presinC si el resultado de e@presin es 0AL+) loconvierte en 'E#A#E), y viceversa.

    Be@presin

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    5/37

    3C

    FbuenG +Fd%aG Fbuend%aG B I 7 J C OrB7 J 3C 'E#A#E)

    Ejercicios:

    1) Indica como se declarara una variable que almacenase lossiguientes datos:

    a)El ao de nacimiento de una persona.b)El resultado de una ecuacin de un ejercicio de fsica.c)Saber si una persona es maor de edad.d)!a ciudad de residencia de una persona.e)El n"mero de #ijos de una persona.

    $) Escribe la e%presin que declara una constante de valor &'(*+(,.-) ueremos crear una matri/ en la que se van a almacenar las

    medidas 0anc#o alto largo) de un automvil en milmetros sin decimales. 23mo se declarara la matri/ que contuviese estosdatos4

    5) Indica el resultado de las siguientes e%presiones:

    a)0$ 6 7) 8 $b)9ot 00 1 od 7) ; & & > &amigos,d)1? @ 11 (nd 00 7 A - ) ;@ 1)e)1? @ 11 *r 00 7 A - ) ;@ 1)

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    6/37

    2. Estructuras de seleccinOay ocasiones en las que un programa debe realizar distintas acciones dependiendo delvalor de una condicin. En estos casos, disponemos de tipos de sentencias pararealizar selecciones dependiendo del valor de una e@presin o de una variable:

    $.1 . Sen ten cia I, - TE # - E SELa estructura general de esta sentencia es la siguiente:

    Ifcondicinthenbloque de sentencias a realizar si lacondicin es cierta

    Else

    bloque de sentencias a realizar si lacondicin es falsa

    End If

    +upongamos que queremos crear un programa que nos diga si somos mayores omenores de edad. El cdigo de dic>o programa ser%a el siguiente:

    Ifedad ; 1? B#enprint &menor de edad,

    Elseprint &maor de edad,

    End If

    +e pueden colocar todas las sentencias de cdigo que queramos en cada uno de losbloques de sentencias, siempre que cada sentencia vaya en una l%nea distinta. +i losbloques de sentencias estn formados por una sola instruccin podemos utilizar laversin reducida que ocupa una sola l%nea:

    Ifcondicinthensentenciaelsesentencia

    E"emplo: IfIs9umeric0n"mero) t#ena C n"mero elseprint &Error,

    En el e"emplo anterior,si la variable n"mero contiene un valor numDricoeste es almacenado en la variable a en caso contrario el programaimprimirF en pantalla el mensaje &Error,.

    -ambi&n podemos anidar varias sentencias 4f t>en Else cuando una de las opcionesiniciales contiene a su vez bifurcaciones dependiendo del estado de otra condicin:

    Ifedad ; 1? B#enprint &menor de edad,

    Else

    Ifedad ; G7 B#enprint &adulto,

    Elseprint &tercera edad,

    End IfEnd If

    Este $ltimo e"emplo podr%a >aberse escrito de otra forma utilizando la clusula ElseIf:

    Ifedad ; 1? B#enprint &menor de edad,

    ElseIfedad ; G7 B#enprint &adulto,

    Else

    print &tercera edad,End If

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    7/37

    Podemos introducir tantas l%neasElseIfcomo queramos siempre antes del$ltimoElse, si es que lo necesitamos.

    Para m$ltiples decisiones, normalmente ms de 7, en las que dependiendo del valor deuna variable queremos que se realice una accin distinta, no conviene utilizar laestructura If B#en, sino que el cdigo queda ms claro y resulta ms fcil de modificarutilizando la sentencia +elect

    $.$ . Estr uctu ra SE E!T !ASEEsta sentencia permite realizar operaciones diferentes dependiendo del valor de unavariable. +u estructura general es la siguiente:

    Select CasedatoCasevalor1

    bloque de sentencias

    casevalor2bloque de sentencias

    Casevalor3bloque de sentencias

    Case Else

    bloque de sentencias, se ejecutan si no se cumple ningunode los valores anteriores

    End Select

    En esta construccin, dependiendo del valor de la variable dato se e"ecutar un bloquede sentencias diferente. Los valores que podemos colocar en lugar de valor

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    8/37

    3ase1, 3, 5print el numero es impar

    Ejercicios:1)Escribe un programa que imprima la palabra !"#$%&si un n"mero es

    maor o igual que 1JJJ '&()&*+en caso contrario.

    $)Kn programa debe indicar si un n"mero es positivo negativo ocero. 23uFl serF su cdigo4

    -)Indica como sera el cdigo de un programa en el que a partir delvalor numDrico del mes nos dijese en que estacin del ao nosencontramos.

    5)Indica como se escribira el cdigo en el que a partir del valornumDrico del mes nos dijese el nombre del mes en que nosencontramos.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    9/37

    3. Estructuras iterativas

    &.1 . Inst rucc in ,OR - TO - #E/T+irve para e"ecutar un bloque de sentencias un n$mero conocido de veces. La sinta@is

    de esta instruccin esForcontador inicioTofinLStepincrementoM

    bloque de sentenciasNextLcontadorM

    !ontador es la variable num&rica que se incrementa cada vez que se e"ecuta el bucle.Este se realizar un n$mero determinado de veces que vendr determinado por losvalores de inicio y de fin. Los argumentos entre corc>etes son opcionales. +i no seindica incremento, &ste se presupone que vale abr querepetir la peticin de la misma >asta que la clave introducida sea correctaC. En estoscasos utilizaremos la instruccin #o D Loop. +e e"ecutar un bloque de cdigomientras o >asta que la condicin evaluada sea verdadera. #epender de la forma en laque escribamos la instruccin. Por lo tanto la sinta@is de esta estructura puede adoptaralguna de las siguientes formas:

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    10/37

    Estrctra Explicacin

    Do Whilecondicinbloque de sentencias

    Loop

    l lo&%e de senten"ias se e8e"%ta mientrasse "%m0la la "ondi"i#n P%ede o"%rrir &%edi"o lo&%e no se e8e"%te ning%na e:

    Do

    bloque de sentenciasLoop Whilecondicin

    l lo&%e de senten"ias se e8e"%ta mientrasse "%m0la la "ondi"i#n Di"o lo&%e see8e"%tar; al menos %na e:

    Do Untilcondicinbloque de sentencias

    Loop

    l lo&%e de senten"ias se e8e"%ta asta &%ese "%m0la la "ondi"i#n P%ede o"%rrir &%edi"o lo&%e no se e8e"%te ning%na e:

    Do

    bloque de sentenciasLoop Untilcondicin

    l lo&%e de senten"ias se e8e"%ta asta &%ese "%m0la la "ondi"i#n Di"o lo&%e see8e"%tar; al menos %na e:

    En cualquier momento podemos abandonar la e"ecucin en mitad del bucle si dentrodel bloque de sentencias colocamos la instruccin

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    11/37

    !omo i siempre es mayor que 2, el bucle no terminar nunca y el programa imprimiren pantalla todos los n$meros pares, >asta el infinito.

    -ambi&n puede ocurrir lo contrario, es decir, que creemos un bucle que no se e"ecutenunca:

    i N #o >ile i J 2 Print i i N i I Loop

    !omo i no es menor que 2, el bucle nunca se e"ecutar.

    Ejercicios:1) Escribe el cdigo de un programa que imprima en pantalla los

    n"meros del 1 al 1J junto a su cuadrado.

    $) Kn programa debe imprimir todos los n"meros impares en ordendescendente entre el 1JJ el 1J. 23uFl serF su cdigo4

    -) ueremos calcular la suma de los n"meros comprendidos entre11 $J a. i. Escribe el cdigo correspondiente.

    5) Escribe el cdigo que imprime todos los n"meros junto a sucubo comen/ando por el 1 #asta que ese cubo sea superior a7.JJJ.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    12/37

    4. Controles bsicos

    & . 1 . In t r%ducc in a l u s% de c%nt r% l e sLos controles son ob"etos que disponen de sus propias propiedades y m&todos, y

    cuya utilidad es la de facilitarnos el desarrollo de nuestras aplicaciones. Lo $nico quetendremos que >acer es modificar sus propiedades Btama?o, color, etc..C paraincorporarlos en nuestros programas y asociarles el cdigo necesario para que secomporten como esperamos al e"ecutar la aplicacin.

    Por e"emplo, el botnAceptarque encontramos en multitud de programas es uncontrol.

    Antes de empezar a conocer los controles bsicos veamos cuales son sus caracter%sticasgenerales:

    Propiedades:-odos los controles disponen de una serie de propiedades las cuales

    podemos cambiar al incluirlos en nuestras aplicaciones. E"emplos de propiedadesson el color, el tipo de letra, el nombre, el te@to, etc...

    Mtodos:+on procedimientos asociados a los controles, es decir, rutinas yaestablecidas que podemos invocar desde nuestras aplicaciones para que se realicealguna operacin sobre el control. Por e"emplo el control List'ieQ Bla lista dearc>ivos que aparece en el e@plorador de indoQsC dispone del m&todo )rder que

    te ordena los datos aparecidos en la lista.

    Eventos:+on acciones que pueden ser motivadas por el propiousuario o por el mismo sistema operativo. E"emplos pueden ser elmovimiento del ratn o >acer clicR sobre un botn. *o necesitamos

    detectar cuando se >a producido un evento determinado, indoQs lodetecta automticamente. Los eventos ya estn definidos, son

    bastantes y cada control cuenta con los suyos propios, aunque sonmuy parecidos. Lo $nico que tendremos que >acer es asociar elcdigo necesario al evento que necesitemos tratar.

    La ventana donde aparecen los controles que 'isual (asic carga pordefecto nada ms arrancar la aplicacin aparece en la figura ad"unta.Soviendo el ratn por encima de cualquier control aparecer unT-ool-ip-e@tU indicndonos el control de que se trata.

    !uando vayamos a utilizar un control en nuestro formulario, tendremos

    que darle un nombre. Aunque podemos poner el nombre que deseemos aun control, el nombre que le demos deber estar relacionado con lafuncin que realizar el control; adems, es conveniente que indique eltipo de control de que se trata. E@iste una convencin ampliamenteaceptada que es la siguiente: se utilizan siempre tres letras min$sculasque indican el tipo de control, seguidas por otras letras Bla primeramay$scula, a modo de separacinC libremente escogidas por el usuario,que tienen que >acer referencia al uso que se va a dar a ese control. Latabla siguiente muestra las abreviaturas de los controles ms usuales,

    "unto con la nomenclatura inglesa de la que derivan:

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    13/37

    cmb !ombo(o@ c>R !>ecR(o@ cmd !ommand(utton frm 0orm fra 0rame

    img 4mage lbl Label lin Line mnu Senu opt )ption(utton pic Picture(o@ s>p +>ape t@t -e@t(o@ tmr -imer

    As% por e"emplo, el botnAceptarque comentamos antes podr%a tener en el

    formulario el nombre cmdAceptar.

    & . $ . !%nt r% l e s b0s i c%sOay una serie de propiedades que son comunes a la mayor%a de los controles. +on lassiguientes:

    #ame:es el nombre con el que se conocer el control cuando lo utilicemos en elcdigo. En un mismo formulario no puede >aber controles con el mismo nombre.!onviene poner un nombre que represente la funcin que tiene el control en laaplicacin para que el cdigo quede ms claro.

    Alinment:alineacin que tendr el te@to dentro del control: izquierda, centro oderec>a.

    A))earance:aspecto del control: 7# o plano.

    Bac2!%l%r:color del fondo del control.

    B%rderSt*le:es el tipo de contorno para el control, el estilo del borde.

    !a)ti%n:Es el te@to que contendr el control. Esta propiedad no e@iste en el

    control -e@t([email protected]:establece si un control est >abilitado para

    su modificacin por parte del usuario o no. +i un control noest >abilitado, es decir, tiene la

    propiedadEnabledestablecida enFalse, su color aparece un poco difuminado paraindicar que no se puede utilizar ese control en ese momento. En la figura anterior

    podemos ver un men$ con una opcin >abilitada y dos des>abilitadas.

    ,%nt:tipo y tama?o de letra que usa el control.

    ,%re!%l%rcolor de la letra del control.

    eit3:altura del control.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    14/37

    e4t:distancia entre el borde izquierdo de un ob"eto y el borde izquierdo de sucontenedor.

    TabInde(:es el orden que ocupa el control cuando se va pasando de uno a otromediante la tecla tabulador.

    T%%lTi)Te(t:Aqu% indicaremos el te@to que se mostrar cuando el ratn se sit$esobre el control. Este te@to puede servir de aclaracin o ayuda sobre la funcin de dic>ocontrol. En la figura ad"unta podemos ver el -ool-ip-e@t que aparece al de"ar el puntero

    del ratn sobre el botn Abrir.

    T%):distancia entre el bordesuperior de un ob"eto y el bordesuperior de su contenedor.

    Visible:#evuelve o establece unvalor que determina si el control esvisible. Por e"emplo para ocultar un control

    podemos establecer el valor de estapropiedad a -alse.

    5idt3:anc>ura del control.

    -e@t(o@Sediante este control podremos realizar tanto la entrada como la salida de datos en

    nuestras aplicaciones. Las propiedades de las que dispone el control Badems de lasgenerales de todos los controlesC son las siguientes:

    !ausesValidati%n: Esta propiedad sirve para indicar si queremos que al abandonarel control se genere un evento 0alidate. #esde el m&todo correspondiente a dic>oevento se deber comprobar el valor introducido en el -e@t(o@, permiti&ndose as% o nola salida. Esta propiedad podr tener el valor !rueoFalse.

    "a(ent3:n$mero de caracteres m@imo que puede contener el te@to introducidoen el -e@t(o@. !uando estamos introduciendo te@to y llegamos al m@imo nos alertacon un pitido.

    "ultiine:permite que el control tenga varias l%neas de edicin. Esta propiedadpodr tener el valor !rueoFalse.

    %c2ed:+i est con valor ruebloquea el control, es decir, el usuario no puedeintroducir ni modificar el te@to que contenga. *os puede servir para utilizar el controlcomo salida de datos sin que el usuario pueda modificarlos por error.

    Te(t:Es la propiedad equivalente a !aption en los dems controles. Aqu% indicamosel te@to que aparecer en el control. Podemos asignarle cualquier te@to en el momentode dise?ar el programa o durante la e"ecucin del mismo. -ambi&n podemos leer elte@to que >aya introducido el usuario para tratarlo durante la e"ecucin del programa.

    Label+u utilidad queda restringida a la visualizacin de datos en el programa, no

    permitiendo la introduccin de datos por parte del usuario. Este control sirve para

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    15/37

    mostrar mensa"es en nuestro formulario que orienten al usuario sobre la utilidad de losdems controles que tengamos en la aplicacin o para indicarnos acciones que podemosrealizar. +us propiedades son las comunes a los dems controles, aunque podemosmencionar aqu% la propiedad

    Aut%Si6e:Oace que el tama?o de la etiqueta se a"uste automticamente a la longituddel te@to que contiene.

    Para este control no se suelen utilizar los eventos ya que su contenido suele cambiarpoco a lo largo de la e"ecucin de la aplicacin. A este control no se le puede dar elenfoque Bal pulsar la tecla tabulador nunca nos podremos colocar sobre este controlC.

    Antes de seguir comentando otros controles, podemos ver en la figura siguiente algunosde ellos.

    !ommand(uttonEste control es el t%pico botn que aparece en todas las aplicaciones y que al >acer

    clicR sobre &l nos permite realizar alguna operacin concreta. +eg$n el cdigo que leasociemos podremos realizar las operaciones que queramos. El evento por e@celencia deeste control es clicR. +us propiedades son:

    !ancel:si esta propiedad tiene el valor !ruequiere decir que se trata del botn decancelacin. Ello implica que al pulsar la tecla Escape se e"ecutar el cdigo asociadoal evento "li"de dic>o botn, independientemente de donde se encuentre el foco enese momento.

    De4ault:si esta propiedad tiene el valor !ruequiere decir que se trata del botn pordefecto. Ello implica que al pulsar la tecla 4ntro se e"ecutar el cdigo asociado alevento "li"de dic>o botn, independientemente de donde se encuentre el foco en esemomento.

    Picture:Podemos escoger una imagen que aparecer sobre el botn.

    DisablePicture:es la imagen que se mostrar en el botn cuando &ste se encuentredes>abilitado, es decir, cuando su propiedadEnabledseaFalse.

    D%7nPicture:imagen que mostrar el botn cuando est& pulsado.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    16/37

    *)-A: Para poder utilizar las tres propiedades anteriores es necesario que lapropiedad +tyle est& en el valor >rapical; en caso contrario el botn no podrcontener dibu"os.

    St*le:Esta propiedad puede tomar dos valores: Standardo >rapical.

    Value: dando a esta propiedad desde el cdigo del programa el valor rue, segenerar el evento Cli". Por lo tanto se trata de una forma de activar el botn desde elcdigo, igual que si se >ubiese pulsado el ratn o el teclado.

    !>ecR(o@El control !>ecR(o@ es una casilla de verificacin en la que $nicamente cabe la

    posibilidad de que se encuentre marcada o desmarcada. +u principal propiedad es:

    Value:el valor ser /0ecedcuando la casilla de verificacin se encuentre marcada

    y )nc0ecedcuando est& desmarcada.

    )ption(uttonEste control nos permite elegir una opcin entre varias de las que se nos plantean. !adaopcin ser un control )ption(utton diferente. )bserva la figura del e"emplo de msaba"o. #e todas las opciones que se nos ofrece, slo podremos activar una. +i activamoscualquier otra opcin, se desactivar automticamente la $ltima que ten%amos activada.

    El marco que est alrededor de los 9 controles )ption(utton se trata del

    control ,rame , es opcional, aunque es conveniente colocarlo siempre que >agamosuso de las opciones. *o slo por motivos de presentacin sino porque de esta manera

    podremos establecer grupos de controles )ption(utton independientes en los que encada grupo slo pueda >aber una opcin activada a la vez. -ambi&n, al mover el marcose movern los controles incluidos en &l facilitndonos las modificaciones.

    Para que los controles )ption(uttonqueden englobados dentro de un control ,rame,primero tendremos que colocar el control ,rame en el formulario con el tama?oadecuado y despu&s ir colocando los controles )ptionbuttondentro del ,rame. #elcontrol ,ramela $nica propiedad que nos interesar es !aption, que es el te@to queaparecer en el encabezado.

    La propiedad ms importante del control )ption(utton esValue:Es el valor que tendr el control: ruesi se encuentra activado y -alsesi no

    lo est.

    *o se suele asociar cdigo a los eventos de este tipo de controles, sino $nicamenteconocer el valor que tienen: BrueoHalse.

    E8E"PO

    Para practicar vamos a realizar una aplicacin que consistir en realizar con n$merosque introduzcamos, una operacin que seleccionemos y mostrar el resultado. Elformulario donde estarn todos los controles es el que aparece en la figura ad"unta.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    17/37

    Lapropiedad !a)ti%ndecada uno de loscontroles es la que semuestra en el

    formulario.+e >a modificado la

    propiedad #amedecada control para que alutilizarlos desde elcdigo sepamos cual esel control con el quetraba"amos:

    Los controles!extoxtienen los nombres: #um1, #um$y Resul.

    Los controles &ptionbuttontienen cada uno de ellos el mismo nombre que sucaption

    Los controlesCommanduttontienen los nombres: !alcular, im)iary Salir.

    A los controles$abely alFrameno >ace falta cambiarles el nombre.

    Lo que >abr que >acer a>ora es asociar cdigo a cada uno de los botones que es dedonde se van a realizar las operaciones:

    Para el botn !alcular9que es el que nos mostrar el resultado seg$n laoperacin seleccionada, >emos utilizado la instruccin I> ?en lse

    Nrivate Sub3alcular3licT0)

    Pimr a b (s Poublea C 9um1.Be%tb C 9um$.Be%tr C JIfsuma.Ualue C Brue B#en r C a 6 bElseIfresta.Ualue C Brue B#en r C a V bElseIfproducto.Ualue C Brue B#en r C a R b

    ElseIfdivision.Ualue C Brue B#en r C a W bElseIfpotencia.Ualue C Brue B#en r C a 8 bEnd If+esul.Be%t C r

    End Sub

    El botn im)iarDatosnos va a servir para borrar los datos introducidos por elusuario y el resultado preparando. El cdigo que tendremos que introducir es el

    siguiente:Nrivate Sub!impiar3licT0)

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    18/37

    9um1.Be%t C &,9um$.Be%t C &,+esul.Be%t C &,

    End Sub

    El botnSalir$nicamente contendr la sentencia nd.Nrivate SubSalir3licT0)

    EndEnd Sub

    'ota: el comando End >ace que un programa finalice.

    4mageEste control lo utilizaremos cuando necesitemos visualizar una imagen en nuestro

    programa. Para ello >aremos uso de las dos propiedades siguientes:Picture:determina la imagen que se debe mostrar en el control. Esta propiedad

    contendr la direccin del arc>ivo donde est almacenada la imagen. +i la imagen >ade cargarse en tiempo de e"ecucin, >abr que >acer uso de la funcin$oad)icturedela siguiente forma:

    Image1Pi"t%re= @oadPi"t%re(A"Bmis do"%mentosdi%8om0A)

    Stretc3:si esta propiedad est establecida aFalse, el control se redimensionar alcargar la imagen, adaptndose al tama?o de esta. +i el valor es !rue, ser la imagen laque se adapte al tama?o del control.

    Picture(o@El control cuadro de imagen es como un control 4mage ampliado; adems de podervisualizar imgenes nos permite dibu"ar puntos, l%neas, rectngulos, c%rculos, etc...#entro de &l pueden colocarse incluso otro tipo de controles. Las propiedades msimportantes son:

    Picture:determina la imagen que se debe mostrar en el control.

    Aut%Si6e:automatiza el tama?o del control a la imagen, es decir, aquel se a"ustar altama?o de la imagen que >a de contener.

    ,ill!%l%r: !olor que se utilizar como relleno cuando se dibu"en formas en elformulario utilizando los m&todos Line o !ircle.

    ,illSt*le: -ipo de relleno que se dar a las formas que se dibu"en en el formularioutilizando los m&todos Line o !ircle.

    E@isten una serie de m&todos que nos van a permitir realizar determinados dibu"osdentro de un Picture(o@. +on los siguientes:

    Pset B@, yC, color #ibu"a un punto en la posicin dada por lascoordenadas V e 1. El color vendr dado por el valorde la variable color.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    19/37

    ine B@, yC 6 Bz, QC, color #ibu"a una l%nea entre los puntos BV, 1C y BW, Ccon el color especificado.

    ine B@, yC 6 Bz, QC, color, B #ibu"a un rectngulo cuyas esquinas superiorizquierda e inferior derec>a sern respectivamentelos puntos de coordenadas BV, 1C y BW, C. El color

    del borde est dado por el valor de color.!ircle B@, yC, radio, color #ibu"a un c%rculo con centro el punto BV, 1C.!ls (orra el contenido del Picture(o@.

    -odos los m&todos anteriores funcionan igualmente sobre el formulario. +i queremosque los dibu"os se realicen sobre un Picture(o@ tendremos que anteponer el nombre deeste antes de todos los m&todos, separados por un punto.

    En aquellos en los que sea posible, el tipo de relleno y el color del mismo estarndeterminados por los atributos establecidos enFillStyley enFillColor. El estilo de lasl%neas Bcontinuas, discontinuasC y su grosor se establecen mediante las

    propiedadesDra?@idtyDra?Style.

    El siguiente e"emplo >ace uso de uno de estos m&todos.Nrivate SubHormouseove0utton (s Integer S#ift (sInteger X (s Single Y (s Single) Ifutton C 1 B#en NSet0X Y) vblueEnd Sub

    El e"emplo anterior ir pintando de color azul aquellos puntos por los que vayapasando el ratn, siempre que tengamos pulsado el botn primario del mismo. Esto esas% porque la condicin 4f >ace que el m&todo Pset slo se e"ecute si la variable (uttonBvariable que determina que botn del ratn est pulsado en cada momentoC vale apeEstos dos controles son de los ms simples que podemos encontrar en 'isual (asic. +eutilizan para dibu"ar l%neas el primero de ellos y para dibu"ar distintas figuras o

    pol%gonos el segundo. +on controles estticos, pues no pueden responder a ning$n tipode evento. Las propiedades caracter%sticas a ambos controles son:

    B%rder!%l%r:color de la l%nea o color del borde que delimita la figura.B%rderSt*le:estilo de la l%nea o del borde: continuo, discontinuo, etc...

    B%rder5idt3:anc>ura de la l%nea o del borde de la figura.

    Adems de estas, >ay otras propiedades caracter%sticas de cada control. Las propias delcontrol ine son:

    /19 /$9 19 $:Estas cuatro coordenadas determinan los puntos origen y final de lal%nea. ecordar que en informtica el origen de coordenadas se corresponde con laesquina superior izquierda.

    El control S3a)etiene estas propiedades caracter%sticas:,ill!%l%r:color de relleno de la figura.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    20/37

    ,illSt*le:el valor de esta propiedad determinar el tipo de relleno que tendr lafigura. Este puede ser slido, transparente, con l%neas >orizontales, verticales, ...

    !onviene recordar a>ora que >ab%amos dic>o que e@ist%an dos propiedades comunesa todos los controles que eran (acR!olor y (acR+tyle, y que ten%an una funcinseme"ante a la que estamos describiendo para 0ill!olor y 0ill+tyle. +i en un +>apetenemos activadas las dos opciones, el color que prevalecer como color de rellenoser el que est& indicado en la propiedad 0ill!olor.

    S3a)e:propiedad cuyo valor sirve para especificar que figura se dibu"ar. Losvalores posibles son 2 BrectnguloC, < BcuadradoC, BvaloC, 7 Bc%rculoC, = BrectnguloredondeadoC y 3 Bcuadrado redondeadoC.

    !ombo(o@Este control es una lista desplegable donde el usuario puede seleccionar una de las

    posibles opciones que aparecen cuando desplegamos la persiana.

    El control !ombo(o@ posee dos listas, una visible, que es la que se despliega, y otra novisible. La informacin de la lista visible se guarda en la propiedad ist. El primerelemento de la lista est almacenado en la propiedad ListB2C, el segundo elemento enListB

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    21/37

    2 B#ropdoQn !omboC Este estilo >ace que el te@to del !ombo(o@ puedaseleccionarse de la lista o bien escribirse directamente sobreel mismo.

    < B+imple !omboC *o aparece la flec>a que nos permite desplegar la lista, porlo que no podremos escoger los elementos de la misma.+implemente se nos permitir escribir directamente sobre elcontrol como si se tratase de un control -e@t(o@.

    B#ropdoQn ListC *o es posible escribir directamente sobre el control;$nicamente pueden escogerse los elementos de su lista.

    -imerEste control funciona de forma distinta a los dems pues no aparece en el formulario

    durante la e"ecucin del programa; slo lo veremos en el proceso de dise?o. +e utilizarcuando queramos que una o varias sentencias se e"ecuten de forma repetida a lo largodel desarrollo del programa. La propiedad caracter%stica de este control es Interval. Estacontendr el valor, en milisegundos, que especifica cada cuanto tiempo deben e"ecutarselas sentencias incluidas en el cdigo asociado al control. Para detener la e"ecucin delcdigo asociado al control bastar con establecer el valor de la propiedad 4nterval a 2.Por e"emplo, si queremos que un programa emita un pitido cada segundo deberemosescribir el siguiente cdigo

    Nrivate Sub tmrBempori/adorBimer0) eepEnd Sub

    adems de tener la propiedad 4nterval del temporizador establecida en

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    22/37

    & . & . Event %sLos eventos son acciones que se pueden realizar en cualquier control: clicR, doble clicR,movimiento del ratn,D A estos eventos se les puede asociar cdigo para que se e"ecuteal producir el evento. Los eventos ms >abituales son:

    "%use"%ve: al mover el ratn por encima del control."%useD%7n:al pulsar cualquier botn del ratn.

    "%use;):al soltar cualquier botn del ratn.

    Los tres eventos anteriores poseen los cuatro parmetros siguientes: (utton, +>ift, Ve 1. !ada uno de ellos toma los siguientes valores:

    (utton= toma el valor A si no se aprieta nin78n botn delratnB el valor 1 si el botn ue se aprieta es el

    primarioB el valor 2 si el botn pulsado es el

    secundario y 4 si se pulsa el botn central del ratn.

    +>ift= nos indica si al pulsar el ratn tenamos pulsadaal7una de las teclas S!i"t# $trl# Alto Alt%r. Sus

    posibles valores son los si7uientes=

    A si no est* pulsada nin7una de estas teclasB

    1 est* pulsada la tecla S!i"t#

    2 est* pulsada la tecla$trl#

    4 pulsada la tecla Alt#

    / pulsada la tecla Alt%r.

    Ve 1= 7uardan el valor de las coordenadas ( e en las uese encontraba el puntero del ratn en el momento de

    producirse el evento.

    'eamos un e"emplo del uso de uno de estos controles:

    Nrivate Sub HormousePoZn0utton (s Integer S#ift (s Integer X (s SingleY (s Single)

    If utton C 1 B#enNrint [=as pulsado el botn primario en la posicin [ > X > [ [

    > Y ElseIf utton C $ B#en

    Nrint [=as pulsado el botn secundario en la posicin [ > X > [

    [> YElse

    Nrint [=as pulsado el botn central en la posicin [ > X > [ [> Y

    End IfEnd Sub

    +i pulsamos uno de los botones del ratn, el programa imprimir en pantalla cual deellos era y la posicin en la que lo >emos >ec>o.

    !3ane:al cambiar el contenido del control, por e"emplo al escribir algo enun -e@t(o@.

    !lic2:al >acer clicR con el botn izquierdo del ratn sobre el control.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    23/37

    Dbl!lic2:al >acer doble clicR con el con el botn izquierdo del ratn sobreel control.

    ift.Nrivate Sub Horm\ePoZn0\e3ode (s Integer S#ift (s Integer) Nrint \e3ode S#iftEnd Sub

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    24/37

    5. FormulariosLos formularios son tratados como controles con sus propiedades, eventos y

    m&todos. Aunque digamos que se trata de un control especial que utilizamos paracontener los controles ms usuales con los que construiremos nuestras

    aplicaciones: Beto !abel 3ommandutton, etc... 'amos a ver laspropiedades y eventos ms importantes de los formularios, como traba"ar con m$ltiplesformularios y como se establece la comunicacin entre ellos.

    Sientras que los formularios con los atributos por defecto son ventanas de las que seutilizan en todas las aplicaciones indoQs, cuando se les in>abilita los botones deminimizar y ma@imizar "unto con la caracter%stica de ser redimensionables tenemos unaventana a la que se denomina cuadro de dilogo. Estos se caracterizan por tener unasdimensiones fi"as Bp. e., no se puede redimensionar el cuadro de dilogo F4mprimirG quese muestra al e"ecutar el comando del mismo nombre en cualquier programa indoQsCy un atributo adicional, el de ser modales o no modales. /n cuadro de dilogo es modalcuando se muestra sobre todas las dems ventanas de la aplicacin y no se puederealizar ninguna otra operacin en tanto no se cierre dic>o cuadro de dilogo. +er nomodal en caso contrario.

    > .1 . Pr%)iedadesLas propiedades ms comunes de los formularios y que son similares al resto de loscontroles son:

    #ame:*ombre del formulario, necesario para llamar al formulario desde el cdigo.

    !a)ti%n:-e@to que aparece en el t%tulo del formulario

    Bac2c%l%r:!olor de fondo del formulario.,%rec%l%r:!olor del te@to del formulario.

    ,ill!%l%r: !olor que se utilizar como relleno cuando se dibu"en formas en elformulario utilizando los m&todos Line o !ircle que vimos anteriormente.

    ,illSt*le: -ipo de relleno que se dar a las formas que se dibu"en en el formularioutilizando los m&todos Line o !ircle.

    )tras propiedades que son propias de los formularios son:

    5ind%7State: *os permite indicar el modo en el que aparecer el formulariocuando sea llamado. -iene tres posibles valores:

    ? @ #%rmal 1 "inimi6ad%. $ "a(imi6ad%.

    "inButt%n * "a(Butt%n:+on dos propiedades que admiten $nicamente losvalores -rueo 0alse. Permiten que queden >abilitados los botones minimizar yma@imizar, respectivamente de un formulario. *os sirven para controlar que el usuariono pueda cambiar el tama?o en que presentemos un formulario en pantalla. +i slodesactivamos una de las propiedades, el botn correspondiente aparecer desactivado,

    pero si desactivamos las dos propiedades, no aparecer ninguno de los botones,$nicamente lo >ar el botn con la (de cerrar.

    S3%7InTas2bar:Sediante esta propiedad podremos controlar que determinado

    formulario aparezca o no en la barra de tareasde indoQs. En una aplicacin conm$ltiples formularios, si para cada uno de los que aparezca en pantalla, nos aparece

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    25/37

    tambi&n en la barra de tareas, al final la barra estar llena de aplicaciones. Podemos>acer que determinados formularios no aparezcan en ella colocando esta propiedada,alse.

    Ic%n:*os permite modificar el icono que aparece a la izquierda de la barra deltCtul% de cualquier formulario, que es donde aparece el men8 de controlBpara

    personalizarlo en nuestra aplicacin

    !%ntr%lB%(:!ontrola la aparicin del men de c%ntr%l. Esta propiedad por defectoest activada, aunque si la ponemos a 0alse, no slo >acemos desaparecer el icono quesimboliza al men$ de control, sino que desaparecen tambi&n los botones de minimizar,ma@imizar y cerrar. Ynicamente aparece la barra de titulo con el caption.

    +i adems de colocar !%ntr%lB%(a 0alse,colocamos"inButt%ny"a(Butt%na0alsey de"amos vac%a la propiedad !a)ti%n, esdecir sin nada en el t%tulo, nos aparecer un formulario sin barra de titulo, es decir,$nicamente un rectngulo gris que s% podremos cambiar de tama?o apuntando sobre el

    borde.

    B%rderSt*le:Esta propiedad es la que ms opciones tiene y la que ms posibilidadesofrece para cambiar el aspecto de nuestros formularios. El cambiar el valor de esta

    propiedad afecta tambi&n a laspropiedades "inButt%n, "a(Butt%ny S3%7InTas2barque cambian automticamenteseg$n la opcin que >ayamos seleccionado. En la siguiente tabla aparece unae@plicacin de cada una de sus opciones y de que valor adoptan otras propiedades delformulario:

    O)ci%nes

    deB%rderSt*

    le

    Utilidad Sin(utton Sa@(utton +>oQ4n-asRbar "uestra

    0- None

    #o aparecen bordes ni

    barra de titulo. #o podemos

    modiicar su tamaGo de

    nin7una orma. Sirve para

    pantallas de presentacin al

    principio de nuestra

    aplicacin

    False False False

    1 - Fixed

    Single

    #o se puede cambiar sutamaGo.#i siuiera se puede

    maximi-ar aciendo doble

    clicH sobre la barra del

    ttuloB al7o ue s se puede

    acer desactivando los

    botones6inuttony6axut

    tonen un ormulario normal

    False False !rue

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    26/37

    2 -

    Sizable

    apare!e

    por

    de"e!to#

    Formulario por deecto de

    0.Contiene todos los

    botones de la barra del

    ttuloB se puede cambiar su

    tamaGo actuando sobre el

    borde y aparece en la barrade tareas.

    !rue !rue !rue

    $ - Fixed

    Dialog

    #o se puede cambiar su

    tamaGo y no aparece en la

    barra de tareas

    False False False

    % - Fixed&ool'indo

    (

    %parece con la barra de

    titulo m*s peueGaB es el ue

    utili-a 0 para mostrar lacaa de erramientas. #o

    aparece el icono del men8 de

    control ni aparece en la

    barra de tareas.

    False False False

    ) -

    Sizable

    &ool'indo

    (

    I7ual ue el anterior pero s

    permite modiicar su tamaGo

    actuando sobre el borde.

    False False False

    > . $ . ;t i l i 6ac in de m ul t i) l e s 4 %rm ular i%sPara utilizar varios formularios en nuestra aplicacin tendremos que a?adir cada uno de

    ellos mediante la opcin de men$ Insert ,%rmo pulsando sobre el botn .

    Mtodo S*o(

    Para llamar a un formulario desde el cdigo utilizaremos el m&todo S#oZ. +i elformulario tiene en la propiedad #ame4%rm$, para llamarlo desde otro formulario

    pondremos: Horm$.S#oZ

    +i no ponemos ning$n argumento se asume que el formulario aparece en modo nomodal, es decir, se permitir que se active cualquier otro formulario sin cerrar elformulario . La otra modalidad que e@iste es modal, lo que significa que no se permiteel enfoque >acia ning$n otro formulario >asta que no se cierre el actual. Este $ltimomodo puede servir para cuadros de dilogo que soliciten ciertos parmetros para que laaplicacin siga funcionando: una contrase?a.

    Los argumentos del m&todo S3%7son:

    ? vb"%deless *o modal

    1 vb"%dal Sodal

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    27/37

    E"emplo: Horm$.S#oZ vbodal

    Senten!ia +oad

    La sentencia !oad seguida del nombre de un formulario provoca que se cargue elformulario en memoria pero sin visualizarse, ya que la propiedad Visiblese colocaa ,alse.

    E"emplo: !oad Horm$

    ealmente el m&todo S#oZ realiza la carga del formulario en memoria, si no estabacargado antes, y coloca la propiedad Visibledel formulario a True. #urante este

    proceso se provoca la activacin de los eventos$oady%ctivatedel formulario en eseorden. En dic>os eventos se puede colocar el cdigo necesario que >aga que elformulario se inicie siempre con los valores que queramos.

    +i el formulario ya estaba cargado en memoria, mediante una sentencia !oado porquese >aya ocultado con el m&todo =ide, al llamarlo con el m&todo S#oZ, $nicamente se

    realizar la modificacin de la propiedad Visiblea True, y no se volver a efectuar elproceso de carga del formulario a memoria. Por tanto el formulario aparecer con losmismos datos que ten%a cuando se ocult. A>ora el $nico evento que se activar esel%ctivateque se activa cada vez que un formulario recibe el enfoque o pasa a ser elformulario activo.

    Senten!ia Unload

    *os permite descargar un formulario de la memoria. +e introduce "unto al nombre delformulario que vayamos a descargar: Knload Horm$

    +i nos encontramos dentro del mismo formulario para descargarlo no >ace falta colocar

    el nombre sino $nicamente: Knload me

    En una aplicacin con varios formularios debemos usar esta sentencia para los m&todosque terminamos de utilizar, de esta forma liberaremos espacio en memoria para que losotros formularios puedan aprovec>arla me"or. La sentencia unload provoca la activacinde los eventos:

    Deactivate: Al contrario que el evento Activate, &ste se activa cada vez que unformulario pierde el enfoque. -ambi&n se activa este evento al utilizar el m&todo =ide.

    ;nl%ad: Este evento recibe el parmetro !ancel, y modificando su valor podemos>acer que se suspenda BcanceleC el proceso de descarga de un formulario. Sediante

    l%neas de cdigo podemos >acer una pregunta al usuario cada vez que se cierra unformulario para que nos confirme la operacin:

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    28/37

    Este cdigo provocar que cada vez que se cierre el formulario de cualquierforma, Bno slo mediante la sentencia Knloadsino tambi&n >aciendo clicR sobrela Z@Z, el men$ de control o con ATI ,'C aparezca un mensa"e

    preguntndonos si realmentequeremos salir:

    Fuer*G;nl%ad:Este evento se producerealmente antes que el evento ;nl%ad.

    En este evento adems de recoger el parmetro !ancel, tambi&n nos proporciona elparmetro /nloadSode que seg$n el valor que tenga podremos saber desde donde seproduce la posible descarga del formulario. Los valores que puede tener son lossiguientes:

    ? vb,%rm!%ntr%l"enu:+ignifica que el cierre del formulario se >a producido: Pulsando sobre la Z@Z Sediante la opcin cerrar del Sen$ de !ontrol. Pulsando AT H ,'. !errando el formulario desde la (arra de -areas.

    1 vb,%rm!%de:4ndica que se >a cerrado el formulario utilizando lasentencia Knload.

    $ vbA))5ind%7s:+e cierra el formulario porque se apaga el sistemadesde Inici% A)aar Sistema.

    & vbA))Tas2"anaer:#esde el administrador de tareas de QindoQs B!TR HAT H DEC se cierra la aplicacin que contiene el formulario

    ' vb,%rm"DI,%rm:+e produce cuando se cierra un formulario >i"o porque seest cerrando el formulario "DIque lo contiene.

    Sediante unas l%neas de cdigo vamos a probar las posibilidades de este evento.+eg$n desde donde se cierre el formulario del que consta la aplicacin aparecerun mensa"e distinto pidi&ndonos confirmacin en el proceso de descarga.

    *ota: Para el correcto funcionamiento de este e"emplo se debe compilar laaplicacin mediante ,ile "a2e E/E ,ile...y e"ecutar la aplicacin desde fuera

    del entorno de traba"o de '(.Esto es as% para que se pueda cerrar la aplicacinapagando el sistema y desde el administardor de tareas.

    El cdigo asociado al evento [uery/nload es el siguiente:

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    29/37

    > . & . !%m unicac i%n en t re 4 %rm ular i%s#esde un formulario se puede tener acceso a los controles y propiedades de otroformulario.

    En lugar de realizar el paso de parmetros cuando se llama a otro formulario quequeremos que aparezca con unos determinados valores iniciales, lo que se >ace esacceder a los controles del otro formulario y despu&s mostrarlo mediante elm&todo S#oZ.

    Para acceder a los controles de otro formulario se sigue la siguiente sinta@is:

    &ormlario'$ontrol.Propiedad ( )alor

    +e debe colocar una admiracinentre el formulario y el control y un punto entre elcontrol y la propiedad. E"emplo: Horm$]!abel1.3aption C [9"mero de3lientes[

    Al acceder a las propiedades de otro formulario automticamente se carga &ste enmemoria, si no lo estaba ya antes. /na vez que >ayamos modificado sus propiedades losvisualizaremos con el m&todoS#oZ.

    A * I S O + *o se puede acceder a las variables declaradas en otro formulario, demodo que si queremos traba"ar con variables generales, las cuales sean accesibles desde

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    30/37

    cualquier formulario de la aplicacin, tendremos que declararlas como P$blicasdesdeun mdulo de cdi7o.

    Para insertar un mdulo en nuestro proyecto tendremos que e"ecutar el

    men$ Proe"to+gregar .#d%loo pulsar sobre el botn de labarra de

    >erramientas.*os aparecer una ventana en la que $nicamente podremos colocar lasvariables y procedimientos o funciones que queramos que sean p$blicas para toda laaplicacin.

    A>ora la ventana deproyecto tiene una l%nea ms con un icono distinto indicandoque se trata de un mdulo de cdi7o=

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    31/37

    6. Contantes y funciones de isual !asic

    J . 1 . !%ns t ant esA continuacin se detalla una lista con las constantes ms usadas definidas en 'isual

    (asic y su significado:

    vbBlac2 color negrovbBlue color azulvb!*an color azul celestevb=reen color verdevb"aenta color violetavbRed color ro"ovb53ite color blancovbell%7 color amarillo

    vbes +ivb#% *ovb!r4 4ntroduce un retorno de carro y un avance de l%nea.

    #e esta forma podemos >acer que se comience aescribir en una nueva l%nea.

    Las siguientes constantes se utilizan en los Ssg(o@ para indicar la se?al y los

    botones que se mostrarn:vb!ritical se?al de errorvbE(clamati%n se?al de advertenciavbIn4%rmati%n se?al de informacinvbFuesti%n se?al de interrogacinvbO2Onl* botn de aceptarvbO2!ancel botones aceptar y cancelarvbes#% botones +% y *ovbes#%!ancel botones +%, *o y !ancelarvbAb%rtRetr*In%re botones Anular, eintentar y )mitir

    Para determinar que carcter se >a pulsado en el teclado podemos comprobar su

    cdigo A+!44. 'isual (asic nos facilita esta labor mediante estas constantes:vba arribavba aba"ovba izquierdavba derec>avbas ms, aunque no las e@pondremos aqu%. Los cuatroprimeros casos propuestos nos servirn para, por e"emplo, mover un ob"eto por la

    pantalla con la ayuda de las teclas de desplazamiento, como sucede en un "uego.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    32/37

    F,n!iones

    /na funcin nos servir para realizar un clculo u obtener un determinado valor.Entre las m$ltiples e@istentes podemos destacar las siguientes, agrupadas en categor%as.

    J . $ . , unc i%nes m at em 0t i casAbsKn$meroL #evuelve el valor absoluto de nmeroSnKn$meroL 4ndica el signo de nmeroIntBn$meroC #evuelve la parte entera de nmeroSMrKn$meroL Oalla la ra%z cuadrada de nmeroR%undKn$mero, numdecimalesL edondea nmerocon las posiciones

    decimales indicadasSinKnguloL +eno de ngulo!%sKnguloL !oseno de nguloTanKnguloL -angente de ngulo

    J . & . , unc i%nes a l ea t %r iasRnd #evuelve un n$mero aleatorio entre 2 y ace que aparezca una ventana preguntndonos si deseamos salirdel programa, en la que aparecern los botones J+iK o J*oK. +i pulsamos el botnJ+iK, el programa finalizar Bcomando EndC.

    #%ta im)%rtante: conviene resaltar aqu% que cuando una sentencia de'isual (asic es demasiado larga y no cabe en una l%nea, antes de comenzara escribir la continuacin de dic>a sentencia en la l%nea inferior esnecesario escribir el carcter de subrayado BGC al finalizar la l%neaanterior como puede observarse en el $ltimo e"emplo.

    Las distintas combinaciones de dibu"os y botones que pueden mostrarse en un Ssg(o@se encuentran en el apartado J.1., aunque los repetiremos aqu%:

    vb!ritical se?al de errorvbE(clamati%n se?al de advertenciavbIn4%rmati%n se?al de informacinvbFuesti%n se?al de interrogacin

    vbO2Onl* botn de aceptarvbO2!ancel botones aceptar y cancelar

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    35/37

    vbes#% botones +% y *ovbes#%!ancel botones +%, *o y !ancelarvbAb%rtRetr*In%re botones Anular, eintentar y )mitir

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    36/37

    ". El editor de men#s!uando queramos a?adir a nuestros programas una barra de men$s, la tarea ser

    sencilla utilizando el editor de men$s. Para activar el editor de men$s debemos ir almen$ Oerramientas de 'isual (asic y all% escoger la opcin Editor de men$sD, o bien

    >acer clic sobre el botn correspondiente de la barra de >erramientas Estandar.Aparecer una ventana como la siguiente:

    !a)ti%n:ser el te@to que aparecer en el men$. +i se desea que alguna de las letrasdel men$ sirva para acceder de forma rpida a dic>o men$, se debe situar el carcter \antes de esa letra. !omo se puede observar en cualquier programa indoQs esto >arque ese carcter del men$ aparezca subrayado. BEste mismo carcter \ puede utilizarsede modo anlogo en el caption de un !ommand(utton. +i pulsamos la combinacin deteclas TAL-I el carcter escogidoU ser como >acer clicR con el ratn en dic>o botnCPara incluir un separador entre distintas opciones del men$, esta propiedad debe ser Bun guinC.

    #ame:es el nombre con el que nos referiremos al men$ desde el cdigo.

    S3%rtcut:asocia una combinacin de teclas para acceder al men$ de formaabreviada.

    !3ec2ed:determina si aparecer o no una marca de verificacin a la izquierda de laopcin del men$.

    Enabled:si esta casilla no est marcada, dic>o men$ no ser accesible apareciendodifuminado.

    Visible:determina si dic>o elemento del men$ podr verse o no.

    Estas tres $ltimas propiedades pueden modificarse en tiempo de e"ecucinestableciendo su valor a -rue o a 0alse.

  • 7/24/2019 LENGUAJE DE PROGRAMACION VISUAL BASICK 0.6.docx

    37/37

    !uando queramos que un men$ est& dentro de otro, es decir, sea un submen$, no

    tendremos ms que tabularlo en el editor de men$s mediante el botn delmismo.

    El $nico evento disponible para un men$ es !licR , que corresponde a la seleccin de

    la opcin, independientemente de que &sta se realice con el ratn o con el teclado.Para crear un men$ emergente o men$ conte@tual no tememos ms que crearlo como

    si se tratase de un men$ normal y >acerlo invisible. Para abrirlo >aremos uso delm&todo PopupSenu, como se muestra en el siguiente e"emplo.

    Ifutton C vb+ig#tutton B#enNopupenu nombremen"