Anda di halaman 1dari 278

VISUAL BASIC como debe ser.

%Megabyte s.a.c.
GRUPO EDITORIAL

Tercera Edición, Febrero 2006

Dedicatoria |
Área : Computación e Informática
Hecho el Depósito Legal en la Biblioteca Nacional del Perú
N° 2006-1601 (Ley N° 26905 / D.S. N° 017-98-ED)
R.U.C. N° 20507993444
ISBN: 9972 - 821-53 - 6 A José Domingo y María Eugenia, mis
Padres, por darme todo lo que estuvo
© Edward Aburto Correa
Gerente General___________
a su alcance para ser un profesional.
© Juan José Castañena León
Autor
© Gean Cario Apolinario García
Diseño de Carátula _____
A Blanca Mírela, mi esposa y a
Juan José, José María y María José,
Visual Basic 6.0 Como Debe Ser..... mis hijos, por el amor que nos une.
Derechos Reservados / Decreto Ley 822
Prohibido la reproducción total o parcial de este libro, su tratam iento informático
la transmisión de ninguna otra forma o por cualquier otro medio ya sea electrónico,
mecánico, por fotocopia, por registro u otros métodos sin permiso previo y por
escrito de los titulares de Copyright.

D is trib u ció n y Ventas


Jr. R ufino Torrico 889 of. 208 - C erca d o de Urna
Telefax: 332-4110

w w w .e d ito ria lm e g a b y te .c o m v e n ta s @ e d ito ria lm e g a b y te .c o m

C ta. B a n c o de Cré dito


SI. 191-12591005-0-86
$. 191-12591006-1-87

G rupo E d it o r i a l Megabyte
'fo VISUAL BASIC como debe se r.. < VISUAL BASIC como debe s e r .. . 4ÊÊÊÈb

AGRADECIMIENTO PRÓLOGO

A todas las personas e instituciones que, una vez Pensando en ti, me animé por la redacción de este libro. “Visual
más, hicieron posible la culminación de este segundo Basic, como debe ser...”, es como tú: único; distinto de muchos otros
libro. libros de com putación, especialm ente los referentes a lenguaje de
program ación.
A mis alumnos, de manera especial, por ser ellos
q u ien es m e e n señ a ro n , d ia ria m e n te q u é y cóm o A través de mis años de experiencia como docente he notado, con
escribir este libro. asombro y pesar, que la mayoría de los estudiantes se “quejan” de los
libros porque no los “entienden”, ya que sólo presentan conceptos y
sintaxis que antes de responder a sus inquietudes y aclarar sus dudas,
los confunden. Además, dicen, presentan una secuencia de temas que
pocas veces se tratan en el desarrollo de la asignatura.

“V isu a l B asic, com o debe s e r ...”, es un texto em inentem ente


El A utor. práctico, quizás esto sea lo medular que lo hace diferente de otros libros.
Aquí encontrarás programas desarrollados y ejercicios propuestos que
te ayudarán a conjugar armoniosamente la teoría y la práctica. Es, pues,
una eficiente guía didáctica para crear aplicaciones que te serán útiles
en la realización de tus diversas tarcas como programador en tu centro
de trabajo.

Sé, también, que como docente no sólo debo ser el “facilitador” del
aprendizaje, si no que además tengo la tarea de buscar despertar en los
alum nos su aletargado espíritu de investigación que le ayuden a no
“contestar”, con los conocimientos, impartidos en aulas sino más bien
que profundicen sus conocim ientos, los contrasten y los pongan en
práctica. Para ellos y par ello presento también aplicaciones propuestas.

► 6 G rupo E d it o r i a l Megabyte •‘í G rupo E d it o r i a l Megabyte 7 ^ ||¡ ¡ |l


o

VISUAL BASIC como debe ser.. . i l i l i P

C O N T E N ID O

P rólogo.................................................................................................................................. 7
Indice .................................................................................................................................... 9
Introducción ........................................................................................................................ 17

CAPÍTULO I : ENTORNO DEL VISUAL BASIC


Acceso al visual Basic ......................................................................................................... 21
Ventana de In icio .................................................................................................................. 22
¿Qué es un Proyecto?............................................................................................................ 23
Componentes del Visual Basic.............................................................................................. 25
Descripción de la Barra Estándar......................................................................................... 28
Ventana de Componentes..................................................................................................... 31
Salir del Visual Basic.............................................................................................................. 33
Solucionando los problemas iniciales................................................................................... 34
Filosofía de programación en Visual Basic........................................................................... 40
Preguntas de repaso N° 01.................................................................................................... 41

CAPÍTULO II : DESCRIPCIÓ N DE LOS CONTROLES BÁSICOS


El formulario ........................................................................................................................ 45
¿Cómo asignar una propiedad?............................................................................................. 47
Etiqueta (Label)..................................................................................................................... 49
Aplicación desarrollada N° 0 1 .............................................................................................. 50
Seleccionar controles ............................................................................................................ 51
Modificar el tamaño de los controles................................................................................... 52
Mover el control .................................................................................................................. 52
Guardar o Grabar una aplicación.......................................................................................... 54
Ventana para grabar un formulario....................................................................................... 55
Ventana para grabar un proyecto......................................................................................... 55
Abrir o recuperar una aplicación ......................................................................................... 56
Ejecutar una aplicación ........................................................................................................ 57
Finalizar una aplicación ....................................................................................................... 58
Grabar un proyecto en un diskette....................................................................................... 58
Crear un archivo ejecutable (*.EXE).................................................................................... 59
¿Qué es un acceso directo?.................................................................................................... 59
Crear un acceso d irecto........................................................................................................ 60
Caja de texto (Text) ............................................................................................................ 64

I P I ^ G ru p o E d ito r ia l M e g a b y te 9 m »
VISUAL BASIC como debe se r.. . VISUAL BASIC como debe s e r.. .
Aplicación desarrollada N° 0 2 .................................................. .......................................... 65 Aplicación desarrollada N° 0 9 ............................................................................................ 116
Aplicación propuesta N° 01................................................................................................. 67 InputBox ............................................................................................................................... 122
Aplicación desarrollada N° 03.............................................................................................. 67 Contadores y acumuladores ................................................................................................ 125
Botones de Comandos (Command)..................................................................................... 69 Aplicación desarrollada N° 1 0 ............................................................................................ 125
Aplicación desarrollada N° 04 ............................................................................................. 70 Aplicaciones propuestas N° 04 y 05 .................................................................................. 130
Escribir instrucciones para los controles............................................................................. 71 IIF ........................................................................................................................................... 131
Ventana de código o de instrucciones................................................................................... 71 SelectC ase............................................................................................................................. 132
Principales eventos .............................................................................................................. 72 Aplicación desarrollada N° 11.............................................................................................. 133
Visual Basic le ayuda a escribir los programas..................................................................... 75 Aplicación desarrollada N° 12 ........................................................................................... 137
Aplicación propuesta N° 0 2 ................................................................................................. 75 Aplicación propuesta N° 06 ............................................................................................... 143
Trabajando con os nombres de los controles...................................................................... 76 C hoose................................................................................................................................... 143
Aplicación desarrollada N° 05 .............................................................................................. 77 Funciones de caden a............................................................................................................ 144
Errores más com unes........................................................................................................... 80 Aplicación desarrollada N° 13 ............................................................................................ 145
Preguntas de rep aso ............................................................................................................. 81 Funciones tipo fecha ............................................................................................................ 146
Aplicación desarrollada N° 1 4 ............................................................................................. 146
CAPÍTULO III : ELEM ENTOS DE LA PROGRAMACIÓN Función DateAdd .............,.................................................................................................. 148
Procedimientos y funciones ................................................................................................ 85 Función D ateD iff.................................................................................................................. 148
Sintaxis de un procedimiento............................................................................................... 87 Función DateAdd ................................................................................................................. 150
Sintaxis de una función......................................................................................................... 88 Funciones tipo hora .............................................................................................................. 152
Parámetros por referencia .................................................................................................... 89 Funciones Numéricas............................................................................................................. 152
Parámetros por valor ............................................................................................................ 89 Aplicación desarrollada N° 15 ............................................................................................. 154
Creación de procedimientos a nivel de formulario ............................................................ 90 Función S h ell........................................................................................................................ 157
Llamar a un procedimiento................................................................................................... 91 Aplicación desarrollada N° 16 ........................................................................................... 158
Constantes ............................................................................................................................. 92 For Next ................................................................................................................................ 159
Variables................................................................................................................................. 92 Do Loop ................................................................................................................................ 159
Tipos de variables ................................................................................................................ 94 D oEvenst............................................................................................................................... 159
Diferencia entre Dim. y Static ............................................................................................. 95 Aplicación desarrollada N” 17.............................................................................................. 160
Aplicación Desarrollada N° 0 6 ............................................................................................ 97 A rray...................................................................................................................................... 162
Ejemplo de una variable a nivel de procedimiento ............................................................. 98 Aplicación desarrollada N° 1 8 ............................................................................................. 163
Ejemplo de una variable a nivel de formulario ................................................................... 98 Crear un array de controles ................................................................................................. 164
Operadores aritméticos ........................................................................................................ 99 Aplicación desarrollada N° 19 ........................................................................................... 165
Orden de ejecución de los operadores................................................................................. 99 Aplicación desarrollada N° 2 0 ............................................................................................ 169
Comentarios .......................................................................................................................... 100 Aplicación desarrollada N° 21 ............................................................................................ 174
Aplicación desarrollada N° 0 7 ............................................................................................. 101 Errores más com unes............................................................................................................ 178
IfT h e n ................................................................................................................................... 106 Preguntas de repaso N° 0 3 ................................................................................................... 179
Operadores ló gicos............................................................................................................... 107
M sgB ox.................................................................................................................................. 109 CAPÍTULO IV : MEJORANDO EL ASPECTO DE LOS FORMULARIOS
Iconos de la función M sgBox.............................................................................................. 110 Control Frame (Marco) ....................................................................................................... 183
Aplicación desarrollada N° 08 ............................................................................................. 112 Asignando colores................................................................................................................. 184
Consistencia de datos ........................................................................................................... 116 Qbcolor ................................................................................................................................. 184

E d it o r i a l M e g a b y te # ^ G ru po E d it o r ia l Megabyte H
A f c VISUAL BASIC como debe se r.. . <5> § VISUAL BASIC como debe se r.. .
RGB ................................................. .................................................................................... 184 CheckBox.............................................................................................................................. 240
Control Shape (Figuras)........................................................................................................ 185 Aplicación desarrollada N° 35 ............................................................................................ 240
Control Line (Línea) ............................................................................................................ 186 ListBox .................................. .............................................................................................. 243
Control PictureBox (Caja de Imagen) ................................................................................ 187 Aplicación desarrollada N° 36 ............................................................................................ 244
Método gráficos ................................................................................................................... 189 Calculando los días Probables de Fertilidad....................................................................... 246
Aplicación desarrollada N° 2 2 ............................................................................................. 190 UpDown ..... ......................................................................................................................... 248
Buscando gráficos en la computadora .............................................................................. 193 MaskEdBox ......................................................................................................................... 250
Control Image ....................................................................................................................... 195 Aplicación desarrollada N° 3 7 .............................................. ............................................... 252
Control Timer ....................................................................................................................... 195 SendKeys ............................................................................................................................. 257
Aplicación desarrollada N° 2 3 ............................................................................................ 196 Aplicación desarrollada N° 38 ............................................................................................ 258
Aplicación desarrollada N° 2 4 ............................................................................................ 198 Aplicación desarrollada N° 39 ............................................................................................ 261
Control ImageList (Lista de Im ágenes).............................................................................. 200 Instrucción With ................................................................................................................... 264
Manejo de las imágenes en el control Im ageList............................................................... 202 Preguntas de repaso N° 05 .................................................................................................. 265
Aplicación desarrollada N° 2 5 ............................................................................................. 203
Función LoadPicture............................................................................................................. 203 CAPÍTULO VI : MANEJO DE VARIOS FORM ULARIOS
Control Calendar (Calendario)............................................................................................ 204 Agregar Formularios a una aplicación................................................................................. 269
Aplicación desarrollada N° 26.............................................................................................. 205 Quitar formularios de una aplicación ................................................................................. 271
Control StatusBar (Barra de Estado)................................................................................... 206 Seleccionar un formulario a ejecutar prim ero..................................................................... 271
Ejemplo de una aplicación usando el control StatuBar ..................................................... 209 Instrucciones para manejar formularios ............................................................................. 272
Pantallas de presentación ..................................................................................................... 211 Aplicación desarrollada N° 40 ............................................................................................ 273
Control O L E .......................................................................................................................... 211 Aplicación desarrollada N° 4 1 .............................................................................................. 278
Activar una presentación en Power Point ......................................................................... 212 Errores más com unes............................................................................................................ 280
Objetos insertables................................................................................................................ 214 Preguntas de repaso N° 06 .................................................................................................. 281
Controles Hscroll y Vscroll ................................................................................................ 215
Aplicación desarrollada N° 27 ............................................................................................. 215 CAPÍTULO VII : DISEÑO DE MENU
Control ProgressBar............................................................................................................. 218 Editar EN menú .................................................................................................................... 295
Control Slider......................................................................................................................... 218 Instrucciones PopupMenú .................................................................................................. 298
Preguntas de repaso N° 04 .................................................................................................. 219 Control ToolBar ................................................................................................................... 303
Aplicación desarrollada N° 43 ............................................................................................ 305
CAPÍTULO V : INGRESO PERSONALIZADO DE DATOS SsTab...................................................................................................................................... 309
ComboBox............................................................................................................................. 223 Errores más com unes............................................................................................................ 311
Aplicación desarrollada N° 28 ............................................................................................. 224 Preguntas de repaso N° 07................................. .................................................................. 312
Aplicación propuesta N° 07 ................................................................................................ 225
Aplicación desarrollada N° 29 .............................................................................................. 226 CAPÍTULO VIII : MANEJO DE ARCHIVOS
Aplicación propuesta N° 08 ............................................................................................... 229 DriveListBox .................................................. ..................................................................... 315
Aplicación desarrollada N° 31 ............................................................................................ 230 DirListBox ........................................................................................................................... 315
Aplicación desarrollada N° 32 ............................................................................................ 233 FileListBox ........................................................................................................................... 315
OptionButton ....................................................................................................................... 236 Aplicación desarrollada N° 44 ........................................................................................... 316
Aplicación desarrollada N° 33 ............................................................................................. 237 Aplicación desarrollada N° 45 ........................................................................................... 317
Aplicación desarrollada N° 34 ............................................................................................ 239 CommoDialog ...................................................................................................................... 319

lj § i ¡ |||> 12 G rupo E d it o r i a l Megabyte ^ f||¡|§ lililí^ G ru p o E d ito ri w Megabyte 13


_______________ , . o
^É iÍÉ É ÍÍ’' VISUAL BASIC como debe se r... VISUAL BASIC como debe se r...
Aplicación desarrollada N° 46 ........................................................................................... 323 Asistente VB para base de datos ........................................................................................ 371
Uso de la im presora............................................................................................................. 325 Control D bcom bo................................................................................................................. 372
Objeto printer ....................................................................................................................... 326 Aplicación desarrollada N° 52 ........................................................................................... 372
Método Print ....................................................................................................................... 327 Aplicación propuesta N° 09 ................................................................................................ 373
Instrucción T a b ..................................................................................................................... 327 Control D bgrid...................................................................................................................... 374
Instrucción S p c ..................................................................................................................... 328 Aplicación desarrollada N° 53 ............................................................................................. 376
Método PrintForm .............................................................................................................. 328 Instrucciones S Q L ................................................................................................................ 376
Aplicación desarrollada 47 ................................................................................................... 328 Aplicación desarrollada N° 54 ............................................................................................ 379
Comandos del D O S ............................................................................................................. 331 Aplicación desarrollada N° 55 ............................................................................................. 383
Control de Errores ............................................................................................................... 332 Variables tipo Recordset...................................................................................................... 386
On Error ................................................................................................................................ 332 Aplicación desarrollada N° 56 ............................................................................................ 388
Objeto E r r ............................................................................................................................. 332 Aplicación desarrollada N° 57 ............................................................................................ 392
Errores interceptables más comunes ................................................................................. 333 Modificar varios registro a la v e z ........................................................................................ 397
Control RichTextBox........................................................................................................... 334 Métodos de Transacciones .................................................................................................. 397
LoadFile................................................................................................................................. 335 Aplicación desarrollada N° 58 ............. ............................................................................... 397
SaveFile.................................................................................................................................. 335 Manejo de fo to s .................................................................................................................... 398
Funciones A P I...................................................................................................................... 336 Aplicación desarrollada N° 59 ............................................................................................. 398
Apagar la computadora automáticamente ......................................................................... 337 Manejo de varias tablas ....................................................................................................... 402
Crear discos de instalación .................................................................................................. 338 Uniendo tablas ..................................................................................................................... 404
Control ActiveMovie ........................................................................................................... 340 Aplicación desarrollada N° 6 0 ............................................................................................. 406
Crear Archivos de Ayudas................................................................................................... 341 Errores más com unes............................................................................................................ 410
Preguntas de repaso N° 09 .................................................................................................. 411
CAPÍTULO IX : MANEJO DE BASE DE DATOS
Base de d a to s ......................................................................................................................... 347 CAPÍTULO X : PROGRAM ACIÓN DAO
Tablas...................................................................................................................................... 347 Objeto de acceso a datos ..................................................................................................... 416
Registros y Campos ............................................................................................................. 347 Métodos para manejar base de datos .................................................................................... 417
Crear una Base e Datos usando Visual Basic........................... ......................................... 349 Antes de programar con D A O ................................................................................................ 420
Tipos de Recordset ............................................................................................................... 351 Control MsFlexgrid................................................................................................................. 425
Crear una Base de Datos usando Microsoft Access ......................................................... 354 Otras instrucciones SQL ....................................................................................................... 433
Control Data ......................................................................................................................... 358 Control MsChart .................................................................................................................... 440
Objeto Recordset .................................................................................................................. 358
Aplicación desarrollada N° 48 ............................................................................................. 359 CAPÍTULO XI : CREACIÓN DE REPORTE
Aplicación desarrollada N° 49 ............................................................................................. 362 Pasos para crear un rep o rte................................................................................................... 447
Control DbList ...................................................................................................................... 364 Reportes tipo Estándar .......................................................................................................... 447
Consulta de registros ........................................................................................................... 364 Vincular Tablas....................................................................................................................... 448
Aplicación desarrollada N° 50 ............................................................................................. 365 Creación de índices................................................................................................................ 450
Método MoveFirst .............................................................................................................. 365 Ordenación de los registros ................................................................................................... 451
Método Nomatch ................................................................................................................. 366 Totalizar o contar registros .................................................................................................. 452
Mantenimiento de registros ............................................................................................... 367 Estilo del reporte .................................................................................................................. 453
Aplicación desarrollada N° 51 ............................................................................................ 367 Control Cristal Report .......................................................................................................... 453

G rupo E d it o r ia l M e g a b y t é * ¡I ||Í j^ G rupo E d it o r i a l Megabyte 15 « ¡g »


VISUAL BASIC como debe ser. VISUAL BASIC como debe ser. . .

CAPÍTULO XII PROGRAMACIÓN ADO


Conexión L ocal..................................................................................................................... 461
Conexión Remota .................................................................. .............................................. 461 INTRODUCCIÓN
ODBC .................................................................................................................................... 461
Archivos de Vínculos OLE-DB........................................................................................... 461 Este libro esta diseñado de tal manera que sirve de apoyo y guía para estudian­
Configurar una conexión ODBC......................................................................................... 462 tes de programación de computadoras y para un autoaprendizaje porque ha sido
Configurar una conexión OLE-DB...................................................................................... 466 escrito con la experiencia que tiene el autor en el dictado del curso y sobre todo
El control A D O ..................................................................................................................... 467 con la experiencia de alumnos en su proceso de aprendizaje, observando sus difi­
Uso de la propiedad ConnectionString .............................................................................. 468 cultades y escuchando sus preguntas y sugerencias.
Uso de la propiedad RecordSource..................................................................................... 470
Errores más comunes ............................................................................................................. 471 Visual Basic Como Debe Ser..., contiene:
Control DataGrid ................................................................................................................ 474
Control DataList ................................................................................................................. 474 y SECUENCIA ADECUADA DE TEMAS
Control DataCombo ...............................................................................................................474 Obtenida de los años de experiencia que tiene el autor en el dictado del
Control DTPicker ....................................................................................................................491 curso con la finalidad que no se pierda el interés en su aprendizaje,
EIDataReport ....................................................................................................................... 498 jy DISKETTE GRATIS
Controles del DataReport ................................................................................................... 500 Que contiene los principales programas desarrollados en este libro para dar
Propiedades para un reporte ............................................................................................... 501 ejemplos mas rápidos y apoyar al lector para que pueda desarrollar aplica­
Métodos del DataReport ..................................................................................................... 501 ciones mas avanzadas,
DataEnvironment ................................................................................................................ 508 y APLICACIONES PROPUESTAS Y PREGUNTAS DE REPASO
Objeto Connection ................................................................................................................. 510 Para que el lector demuestre en forma práctica los conocimientos adquirí
Objeto Command ................................................................................................................. 511 dos y autoevaluarse con la finalidad de ir midiendo los conocimientos
Uso del Data Report con Data Enviroment ...................................................................... 513 adquiridos.
El Control M SHFlexGrid..................................................................................................... 514
^ TEMAS DE IMPORTANCIA PARA UN CENTRO DE TRABAJO.
Porque se prepara al lector para desarrollar por sí solo aplicaciones que se
Uso de comandos Jerárquicos en MSHFIexGrid .............................................................. 515
presenten en un centro de trabajo, como por ejemplo:
Reporte de comandos Jerárquicos ....................................................................................... 518
Conexión de una Base de Datos mediante Instrucciones .................................................. 520
Q J Controles ActiveX
Método E xecute..................................................................................................................... 528
Q j Creación de archivos de ayuda
Instrucciones SQL para consultas de Acción .................................................................... 529
Q j Manejo de impresoras
Instrucciones DLL ................................................................................................................ 531
y j Base de datos
Q J Instrucciones SQL
Q j Programación ADO
QIJ Uso de DataEnvironment y DataReport

¡ Y Mucho más!

1 8 1 1 ^ 16 G ru po E d it o r ia l Megabyte ' G ru po E d it o r ia l Megabyte 17


^ÉÍÍÍÉÉI» VISUAL BASIC como debe se r...

ANTES DE EMPEZAR 9 '" i" in )■ !■ ■ — —


CAPITULO I —
Mic(psoft
Visual B asic
fiew j L>3.u.y I I
Visual Basic es un programa muy fácil de aprender y con este libro no es
necesario que usted tenga conocimientos de programación, pero si es muy 5l <s¡V
ActiveX m A-rtiv^y r*U ArtivíX v*5Appfcatkr. «,
importante que sepa el manejo básico de cualquier versión del Windows, Control W¿ard H

especialmente el manejo de Mouse.


VBLrierpfis« Adiri MwtX Active!-’ \
Etftkx» Doajmwt OU Document V/.Î
Antes de empezar usted debe saber: Cemriás 1l
I ^.Pioyectol - Micjosoft Visual Basic [diseño] H S B l
Archivo Edición Ver Proyecto Rumato depuración Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda
Manejar el Mouse.
$ • ¡3 ' & B >

Abrir y cerrar ventanas.

^ Minimizar, maximizar y restaurar ventanas. 01 D


- ^ Proyectol (Proyectol)

''b Mover y modificar el tamaño de las ventanas.


|Forml Form J :
Aïabética | Por categorías j
Manejar el teclado. (Nombre) Formi +\ -
Appearance 1-30
AutoRedraw False
Este libro le enseña con una secuencia adecuada brindando en cada párrafo un iackColor □ &H8000000F8
conocimiento mas acerca de Visual Basic, por eso es muy importante que los lea sin iorderStyle 2 • Sizable
Caption Formi
apresuramiento y en el mismo orden en el que ha sido escrito. ClipControls True
ControlBox True

No olvide de desarrollar las preguntas de repaso y las aplicaciones propuestas


antes de pasar al siguiente capítulo.

“Un libro es el mejor aliado para la formación de un buen Profesional” ENTORNO


DEL
VISUAL BASIC
G rupo E d it o r i a l Megabyte ^ f¡||j||
CAPITU LO I: Entorno Del Visual Basic 4

Visual Basic es un sistema diseñado para crear aplicaciones gráficas


de una manera rápida y sencilla las cuales se ejecutan bajo Windows.
El acceso a Visual Basic es m uy sencillo y depende de la carp eta
donde lo instaló o de su versión. P o r ejem plo:
Accesorios ►
_ r) Corel5 ►

_rr) Inicio ►

rj 3SBEESSSB0ÉI AH Text Viewer

.rj] Microsoft Visual FoxPro ► ijjjj Application Performance Explorer

. 7^ Powersoft 5.0 ► jO^ Application Setup Wizard

The Hacker Anti-Virus > 0 Automation Manager

^ Cuaderno de Microsoft Books Online

Explorador de Windows Crystal Reports

Internet Explorer & Readme

Internet Mail RemAuto Connection Manager


Internet News ■fe
^ Microsoft Access

^ Microsoft Excel
'J 2 Microsoft NetMeeting
Microsoft Outlook

Microsoft Photo Editor

■i*l Microsoft PowerPoint

ß j Microsoft Word

m MS-DOS

jjri) A c c e îo ric î *

A dobe »

. - j j Adobe A r m b * 4 0 *
CorelDRAW 8 »
H wiamterrfa: de M ia o so it Office »

H P DeskJet S a » 840C v2 3 *

»«C b »

ä « r te n r t Explore.

Irj MiCttÄoft Offcce ^ » P r o fe s io n a l ►


A b * f o m e n t o de Olhce .rj M icrosoft Ofhce Ï o d * »

3 ] N uevo documento de Office .rj M erosoft SQL Serve? 7.0 *

< 4 l W inZ ip .-j M ê ro iô fr W efcPuW iîhirçj » H erram iertat errçm a ria te s de M ie to » » VStw IS»
PLATINUM W orkf/ie w h t iníe ine l Explore» » .rj MicrQ:oft Visual SourceSafe

, Services er. ¡inea * 'ij Microsoft Visual ßawe 6 Û


_¿J Eavortos ►
.rj S jfca te * 0J M c ro :o ft Visual FoxPro SO

jj, w * « * " • ^
äj fi.v c . W Æ ic
^ A)uda ¿I
£ ] E r— £ W -n H E ,to .
£ MS-DOS
S i* Apagar es iiî« n > 3 O u llc x * Ewpress

In ic io «Ô § ^ V -â lo flfc W « fc s E R « ¡r> E R X 3 5 »

¡ |j |¡ ||^ G ru p o E d ito r ia l Megabyte 21 4ÊS»


<Q>
m X m / VISUAL BASIC como debe se r... CAPITULO I: Entorno Del Visual Basic
Según como está configurado el Visual Basic, antes de ingresar a su La pantalla tiene tres hojas: New, Existing y Recent.
pantalla principal Ud. puede visualizar lo siguiente:
La hoja NEW, permite crear un formulario en blanco para empezar a
diseñar una nueva aplicación (Ver la figura anterior).
_Ll2<J La hoja Existing muestra todos los proyectos creados y permite abrir
* H' ^ cualquiera de ellos:
Microsoft
Visual Basic rrrn
New j Existing | Recent ) M ic ro s o ft

Ì7 Visual Basic
¿á Sí J1t7 «V
New Existing | Recent | -----------------------------------------------------
S e le c cio n a las
h o ja s
ActiveX EXE ActiveX DLL ActiveX VB Application
Control Wizard Buscar en: | _ J Vb
j L I S e le c c io n a
J CKsvr j samples _ j Winapi
u n a c a r p e ta
¡él
VB Enterprise
SI
Addin
Si
ActiveX
[
<
él
ActiveX
J Help
J Nueva carpeta
JO dbc
J Setup
J setupkit
J T empiate
u J Wizards
amer.vbp
^ANA.vbp
Edition Document DLL Document EXE J report J Tsql cli..vbp
Controls j vbonline % |C H IQ U I.virr
___ M u e s tra los
J Repostry
p ro y e c to s q u e e stá n
jJ m ás a la d erech a

Nombre de archivo: (j A,brir


Cancelar S e le c c io n a el
Archivos de tipo: [Project Files (“ vbp;".m ak;".vbg)
tip o d e a rc h iv o
Ayuda Ayuda q u e d e se a ver.

Don't show this dialog in the future r Doni show tNs dialog in thè future

C a silla q u e p erm ite o n o v isu aliza r esta


p a n ta lla al in g resar al V isual B asic
Elija STANDARD EXE para ejecutar el Visual Basic en modo Estándar
y luego haga click en el botón ABRIR.
¿ QUÉ ES UN PROYECTO ?
N O TA :
Para visualizar o no esta ventana cada vez que Ud. ingresa al Visual Es toda aplicación que se desarrolla en Visual Basic y está compuesto
Basic, debe hacer lo siguiente: Una vez que ingresó al Visual Basic haga por formularios, módulos, etc. Para abrir un proyecto (visualizar uno que ya
click en la opción TOOLS (Herramientas) de la barra de menú y elija existe) siga uno de los siguientes pasos:
O P T IO N S ... De la v e n ta n a que se v isu a liz a activ e la p á g in a • Haga doble click en el nombre del proyecto.
ENVIRONMENT (Entorno)y active el botón P ro m p t F o r P roject (Pre­ ■Selecciónelo haciendo un click en él y luego haga click en el botón
guntar por un Proyecto)para que se visualice esta ventana cada vez que Abrir.
ingresa o el botón C reate D efault P roject (Crear un proyecto predetermi­ • Escriba el nombre del proyecto siempre y cuando se encuentre en la
nado) para que no se visualice. carpeta activa y luego haga click en el botón Abrir.

m 22 G rupo E d it o r i a l Megabyte< G rupo E d it o r i a l Megabyte 23


¿59^ VISUAL BASIC como debe ser. .. CAPÍTULO I: Entorno Del Visual Basic

La hoja Recent muestra todos los proyectos activados recientemente y


nos da la posibilidad de abrirlos.
ENTORNO DEL VISUAL BASIC
New Project
Al ingresar al Visual Basic se visualiza la siguiente pantalla:
M ic ro s o ft ■
VisualBasic
New | Existing R e cen t Barra de Menú Barra Estándar
File Folder Barra de Titulo Formulario
C:\Archivos de programa\Dev5tudio\VB
%¿CHIQUI C:\Archivos de programa\Dev5tudio\VB
garner C:\Archivos de programa\Dev5tudio\VB J
IÜoMAR C:\Archivos de programa\DevStudio\VB ' ^ r Proyecto1 - M icrosoft V isual Basic [diseño]
PROJECT 1 C :\ARCHIV~ 1\DEVSTU~ 1\VB
Archivo Edición Ver Provecto Formato Depuración Ejecutar Consulta Diagrama Herramientas Componentos Ventana Ayuda
I^LEO C : \ ARCHIV~ 1\DEVSTU~ 1\ VB
% | t ALLER~1 C : \ARCHI V~ 1\DEVSTU~ 1\VB ¡3 ' 3 0 ► ■ f l 15 * ' i A
j T 1
Abrif

Cancelar
Proyecto 1 (P royecto 1)
A yuda
03 Formularios
|i£ Propiedades - Formi mmm G Forml (Forml)
P D on't show this dialog in the future jF o rm l Form zi
Alfabética | categorías )
-------- 1
(Nombre) Formi
Appearance 1 - 3D
Seleccione el nombre del proyecto y haga click en el botón Abrir. AutoRedraw False
BackColor □ &H80G0000F8
BorderStyle 2 - Sizable
Caption Formi

MUY IMPORTANTE ClipControls


ControIBox
True
True

zi
Si en cualquiera de las 3 páginas Ud. selecciona la opción CA NCELAR,
ingresará al Visual Basic, pero no podrá ver ninguno de sus componentes.

Para solucionar este problema puede seguir cualquiera de los siguientes


pasos: Caja de Ventana de Ventana de Ventana de
Herramientas Proyecto Propiedades Ubicación del
• De la opción FILE (Archivo) elija New Project. Formulario
• Pulse las teclas < CONTROL > + < N >

24 G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 25


é B B b VISUAL BASIC como debe s e r.. . CAPÍTULO I: Entorno Del Visual Basic
BARRA DE MENU
»ü, P ro ye clo ! - M icrosoft V isual Basic {diseño] '-in>x|
Archivo Edición Ver Proyecto Formato Depuración Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda
VENTANA DE UBICACIÓN DEL FORMULARIO
Contiene las órdenes que se utilizan para desarrollar una aplicación. Las
opciones que se visualizan dependen de la versión del Visual Basic. Se activa haciendo click en:
M
■a
DESCRIPCIÓN DE LA OPCIÓN ARCHIVO
Se u tiliz a para in d icar la
Una de las opciones de la Barra de menú mas utilizada es la opción posición del formulario en la
Archivo la cual contiene: pantalla cuando no queremos
que el formulario ocupe toda
N uevo P ro y ecto la pantalla.
Crea un nuevo proyecto.
A b rir Proyecto
Abre un proyecto existente
A g re g a r Proyecto BARRA ESTANDAR
Adiciona uno de los proyecto a la aplicación
Q u ita r Proyecto ,M- • B C L! Cr>. t- !*■’ -b W * ,S.
Borra uno de los proyectos activados
G u a rd a r Proyecto
Graba un Proyecto diseñado Contiene los botones que perm iten realizar las tare as m ás com unes
G u a rd a r Proyecto Como de u n a m an e ra rá p id a como: g rab ar, a b rir, eje c u ta r un pro g ram a,
Graba un proyecto con otro nombre finalizar un p ro g ram a, etc.
G u a rd a r F o rm l
Graba el formulario
G u a rd a r F o rm l como
Graba el formulario con otro nombre NOTA : Si no visualiza la Barra Estándar debe hacer click en la
Im prim ir opción VIEW (Ver) de la barra de menú, luego en ToolBars
Imprime el proyecto o lo seleccionado y activar Estándar.
G e n e ra r P ro y e c to l.e x e
Crea el proyecto ejecutable
Salir
Sale del Visual Basic

P ara e le g ir c u a lq u ier opción haga clic en dicha opción o utilice


las teclas rápidas que algunas de ellas tien en , por ejem plo: para
sa lir de V isual B asic puede usar A lt + Q.

26 G ru po E d it o r ia l Megabyte jjylgp Grupo Editorial Megabyte 27


O
% VISUAL BASIC como debe se r.. . CAPÍTULO I: Entorno D el Visual Basic Ü IÜ P

DESCRIPCION DE LA BARRA ESTANDAR EL FORMULARIO

Crea un Nuevo Proyecto Finaliza un Programa

Crea un Nuevo Formulario Activa la Ventana de Proyecto

Activa el Editor de Menú tiO Activa la V. de Propiedades

Abre un Proyecto Ubicación del Formulario



Es la ventana principal, porque sirve de fondo para los controles que se
“dibujan” en una aplicación como cajas de textos, etiquetas, etc. Se activa
[O Graba un Proyecto Activa el Examinador Browse pulsado SHIFT + F7 o CTRL + R y luego Doble Click en el nombre del
formulario que desea visualizar.

^ Ejecuta un Proyecto Activa la Caja de Herramientas

CAJA DE HERRAMIENTAS
PRINCIPALES TECLAS RAPIDAS
General
CTRL + N Crear un Proyecto. Se activa haciendo click en:
CTRL + O Abre un Proyecto. * SS A
CTRL + S Graba un Formulario.
CRTL + P Activa la Ventana para Imprimir. [ibi " _J
CTRL + R Muestra la Ventana de Proyecto.
17 í? [Ü
CRTL + T Activa la Ventana de Componentes.
CRTL + D Agrega un Archivo. 1=1 il ^zl Contiene los controles que se dibujan
SHIFT + F7 Muestra el Formulario. — en el form ulario para desarrollar
ALT + Q Sale del Visual Basic. © o _J aplicaciones.
F4 M uestra de la Ventana de Propiedades.
F5 Ejecuta un Proyecto. B \
F8 Ejecuta mostrando cada instrucción.
H ü

mm » G rupo E d it o r i a l M e g a b y te « * G rupo E d it o r ia ! Megabyte 29 m m


m m VISUAL BASIC como debe se r,. . CAPITULO I: Entorno D el Visual Basic
La caja de herramientas anterior contiene los controles básicos del Visual VENTANA DE COMPONENTES
Basic y se visualizan cuando se ingresa en modo E stándar (icono
STANDARD EXE) " ¡ Al hacer un click con el botón derecho del mouse en cualquier parte de
la caja de herramientas para llamar a controles que necesitamos y no se
encuentran activos, se visualiza el siguiente menú:
New | EKisting | R e c e n t]
G eneral

S3 ¿7 Iw M
_ j
A
17
[5bi
a-
S S ActiveX EXE ActiveX DLL ActiveX VB Application
Control Wisard
ü ü * * e|
C3 C o m p o n e n te s ..
A g re g a r fic h a ..
g5>
A coplable
O cu lta r
VB Enterprise Ad din ActiveX ActiveX
Edition Document DLL Document EXE
Controls

Al hacer click en la opción Componentes se visualiza:

. n ES
M
General
P a ra in g re s a r al V isu a l B a sic y C o n tr o l e s J D i s e ñ a d o r e s | O b j e t o s i n s e r t a b l e s ]

visualizar la caja de herram ientas con los : : \W IN D O W 5 \S Y S TEM \r e f e d i t . dll


l~ i C o n tr o l A c tiv e M o v ie d e M ic ro s o ft

M A lib i □ : controles más avanzados debe elegir el n C o n tr o l d e a d m in is tr a c ió n d e im a g e n d e W a n g


n C o n tr o l d e d ig ita liz a c ió n d e im a g e n d e W a n g _U ^ ££
_ l w ü m
icono VB E n te rp rise E ditio n C ontrol n C o n tr o l d e e d ic ió n d e im a g e n d e W a n g
C J C o n tr o l d e p á g i n a e n m i n ia tu r a d e i m a g e n d e W
,Vlí
"■
xr_
fo-
<*rr.
9B2
SB

(Visual Basic Edición Em presarial). Si i I C r y s t a l R e p o r t C o n tr o l 4 . 6


n c tC lip OLE C u s to m C o n tr o l m o d u le
«in
ii
© □ LJ Ud., ya ingreso en modo Estándar y desea I""! c tC lo c k O LE C u s t o m C o n t r o l m o d u le F~l [553
zl c t D a t e OLE C u s to m C o n tr o l m o d u le
utilizar los co n tro les avanzados, debe
m igEa D c tG a u g e OLE C u s t o m C o n t r o l m o d u le
o Q c t M e t e r OLE C u s to m C o n tr o l m o d u le
h a c er c lic k con el botón derech o del j... j c tS lid e OLE C u s to m C o n tr o l m o d u le J¡
J____________________1 -lT
m m
I E le m e n to s s e le c c io n a d o s
033 P m ouse en la caja de herram ientas, elegir C : \W IN D O W S \S Y S T E M \re f e d i t . dll

aA la o p c ió n C o m p o n e n te s y lu eg o U b ic a c ió n : C : \W IN D O W S \S YST E M \re f e d i t . dll


11 §s IM
seleccionar el nom bre del control que
;~ r ni
fe
DDO
ôô" (S desea visualizar. Estos nombres se indican
a m e d id a q u e lo s c o n tr o le s se van
tr. M % IT
explicando.
ÈV Para activar o llamar a un control, busque su nombre y haga click en su
íh â dS 0
casilla hasta que se muestre un Aspa y luego haga click en el botón Aceptar.
ÜS $2 © ##l
S'
Casilla indicando que el control se encuentra activo.

30 G ru po E d it o r ia l M e g a b y te « * E d it o r ia l Megabyte 31 R i
VISU AL B A SIC como debe ser.. . CAPÍTU LO 1: Entorno D el Visual Basic
VISUAL BASIC como debe se r.. .
SALIR DEL VISUAL BASIC

VENTANA DE PROPIEDADES Para salir del Visual Basic puede realizar cualquiera de los siguientes pasos:

1. Haga un click en el botón Cerrar de la ventana principal del Visual


Basic.
È
Se activa haciendo click en:
¡Form i Form A Botón Cerrar--------
Alphabetic | Categorized j
* S33 E E £
(Name) Formi File Edit View P roject Form at Debug Run lo o ls A dd-Ins W indow Help

Appearance 1 - 3D C o n tie n e las p ro p ie d a d es o 2. De la opción F IL E (Archivo) de la barra de menú elija E X IT (salir).


AutoRedraw False “ ' características de cada uno de los
3. Pulse las teclas ALT + Q
□ _▼] controles. Estas propiedades se pueden
4. Pulse las teclas ALT + F4
cambiar según lo requiera. También se
BorderStyie 2 - Sizable
activa pulsando la tecla <F4>. NOTA: Si al salir de visual Basic se muestra el siguiente mensaje:
Caption Formi
ClipControls True
ControlBox True
DrawMode 1 3 -C opy Pen ¡
r w - . „ . c i- . J.-. n c j-.i-.A ...J

VENTANA DE PROYECTO

Se activa haciendo click en:


Project - ProjecH É

]ÿ> Project1 (Project 1)


Contine todos los formularios, módulos,
B -& Forms e tc. que form an una a p lic ac ió n . Visual Basic le pregunta si desea grabar los cambios realizados en el
También se activa pulsando <CTRL> proyecto. Si no es im portante lo que tiene en el proyecto o en el
+ <R>. form ulario, haga un click en el botón NO.

32 G rupo E d it o r i a l Megabyte^ I f l E j E 'G ru po E d it o r ia l Megabyte 3 3 ^ ¡ ¡ ¡ |¡


BASIC como debe se r... CAPITULO I: Entorno D el Visual Basic
2 - La Ventana de Propiedades se ubicó debajo de la Barra Estándar y
SOLUCIONANDO LOS PROBLEMAS INICIALES desea llevarla a su posición normal. Así:
,Project1 - M icrosoft Visu al B a sic [design]

1.- Al a c c e d e r a l V isu al B asic no se e n c u e n tr a n to d o s los Fie Edit View Project Form at D ebug Run Took A dd-Ins Window Help

c o m p o n e n tes. si - a - 1 es H m, ►
IF o r m i Form
Para solucionar éste problema debes hacer click en la opción V IE W Alphabetic | Categorized |

(VER) de la barra de menú, cuyas opciones perm iten visualizar los AutoRedraw False ..... *1
BackColor □ &H8000000F& —1
componentes: BorderStyle 2 - Sizable
eSÎSSIÉBÂi 1 Formi
»5, Proyectol - Microsoft Visual Basic [diseño] I—Inixi ClipControls True
ControlBox True zi
Archivo Edición Ver Proyecto Formato Depuración Ejecutar Consulta Diagrama Herramientas Complementos Ventana Ayuda

$ . ¡3 . ' El Código » =iS|_xJ « . P ro je ct! - Fo rm i (Form ) MO


EH Objeto Mayús+F7 - Form !
A

[ab| *v .
Activa el Formulario
F Í» B
d
i ÿ Examinador de objetos F2 m 4 ±j d
GD _J
jp Ventana Inmediato Ctri+G
0
® \
□ Ventana Locales
^gj
£ 3 Ventana Inspección B ■

OrK.
Activa la Ventana
<§$ Explorador de proyectos Ctrl+R de Proyecto
Hl* Ventana Propiedades F4 . Para solucionar este problema debe hacer click con el botón dere­
¡Q Ventana Posición del formulario ■ \ cho del mouse dentro de cualquier parte de la ventana de propieda­
Páginas de propiedades Mayús+F4 Activa la Ventana
de Propiedades
des. Se visualizará cualquiera de las siguientes ventanas.
Tabla ►
Zoom ►
Description
Mostrar paneles ► ✓ Dockable
Activa la Caja de ^ Dockable

Hide
Cuadro de herramientas ■ Herramientas Hide
Ventana de la vista Datos
Paleta de colores
Depuración Desactive la opción Dockable, haciendo click en ella.
Barras de herramientas
m Edición
Otra form a de solucionar este problema es haciendo click en el
Visual Component Manager Editor de formularios
* Estándar
título de la ventana de propiedades y arrastrarla a su posición nor­
Activa o desactiva
mal.
la Barra Estándar
Si la ventana de propiedades ocupa toda la pantalla, restaure la
Activa la Ventana de ventana del Formulario.
ubicación de formulario

» 34 Grupo Editorial Megabyte < | Í ¡ g G rupo E d it o r i a l Megabyte 35


VISUAL BASIC como debe se r.. . CAPITULO I: Entorno Del Visual Basic
La C aja de H erram ientas se ubicó debajo de la B a rra E stá n d a r 6 .- No puede m over ninguno de los controles del form ulario.
y desea llevarla a su posición norm al.
Para so lu c io n a r este p roblem a haga un clic k con el botón
Para solucionar este problema debe seguir los mismos pasos que derecho del mouse en cualquier parte libre del formulario y luego
se siguen p a ra lle v a r a su p o sic ió n norm al la v en ta n a de desactive la opción LO C K jC O N TRO L haciendo un click en dicha
propiedades (caso anterior). opción.
4.- L a C aja de H erram ien tas ocupa toda la pantalla.

Para solucionar este problema haga click en el botón restaurar


de la caja de herramientas.

Botón Restaurar Botón Maximizar

1 -1 ° « *»
d i Botón Minimizar
fx l Botón Cerrar

5.- No puedes visualizar el fo rm u lario y la ventana de propiedades 7.- No en cuentra un control que ha dibujado en el form ulario. Por
y caja de h erram ien tas están en blanco. ejem plo: al d ib u ja r u n a etiqueta se visualiza L abel3, pero Label2
no la encuentra.
Para solucionar éste problema haga en la opción FILE y elige
NEW PRO JECT (Nuevo Proyecto). Primero m axim iza la ventana del fo rm u la rio y luego elige el
nombre del control que buscas de la lista de controles que se
encuentran en la ventana de propiedades. Si en esta lista no
F ile £ d it y ie w E ro je c t F ß rm a t £>et>ug gun T o o ls & d d -In s W in d o w H e lp

s # * - . g~£ , ■ f e i <~vf j „
existe el nombre del control que buscas significa que no existe
cS *

- |á |jc |
en el form ulario.
General j
* Botón para ver ia
L a b e l3 Label
lista de controles
que se encuentran
• F o r m i Form
L a b e l l Label en el formulario
¡
L a b e l2 Label

BackStyle 1 - Opaque
B orderS tyle 0 - None
C aption Labels
DataField

36 G rupo E d it o r i a l Megabyte G r u p o E d it o r i a l Megabyte 37


VISUAL BASIC como debe ser.. . CAPÍTULO I: Entorno Del Visual Basic ^ f ¡ ¡ &
Desea e v ita r que los avances realizad o s en su aplicación se
P o r casualidad a creado varios proyectos o form ularios en su
b o r r e n p o r p ro b le m a s in e s p e ra d o s com o c o rte de flu id o
aplicación y desea b orrarlos.
eléctrico , etc.

Grupo de proyectos - Grupol B Para ello, puede configurar al Visual Basic para que al ejecutar
En este ejemplo a creado en su
C3 aplicación tres proyectos y en el su aplicación se graben en form a automática todos los cambios
- P r o y e c t o l ( P r o y e c t o l) proyecto N° 1 tiene 3 formularios. que le ha realizado.
-j ' > Form ularios Haga click en la opción TOOLS (Herramientas) de la barra de
C ] F o rm l (F o rm l)
Si hace un Click en el signo mas (+) de menú y elija OPTIONS... De la ventana que se visualiza active la
O Form 2 (Form 2)
C ] Form 3 (F o rm 3 )
un proyecto, se visualizan sus página E N VIR O N M EN T (Entorno). Se visualiza la siguiente
0 ¡ j ? P ro y e c to 2 (P ro y e c to 2 )
componentes y en el signo + de la ventana:
B €: >IForm
........ularios
...... palabra Formularios se visualizan los
Q F o rm l (F o r m l) formularios que contiene. Si hace un Para que los cambios realizados a
Editor | Formato del editor | General ] Acople Entorno | Avanzado ]
- P ro y e c to 3 (P ro y e c to 3 ) click en el signo menos (-) los oculta. Cuando se inicie Visual Basic: Mostrar plantilas para: su aplicación se graban
GB- l2 Form ularios
(• preguntar por un proyectol F Eormularios autom áticam ente al ejecutarse
C £rear un proyecto predeterminado P Formularios MDI
active el botón G uardar los
F Módulos
F Módulos de clase
Cambios
Cuando se inicie un programa:
Para solucionar este problem a haga un click con el botón C guardar los cambios F Controles de usuario

derecho del mouse en el proyecto o form ulario que desea borrar. C Preguntar p ata guardar los cambios F Páginas de propiedades NOTA
F Documento de usuano Cada una de las páginas de esta
Se visualiza el siguiente menú: <• No guardar los cambios

Directorio de plantillas:
ventana permiten configurar id
|C:\ARCHIVOS DE PROGRAMA\D£VSTUDIO\VB\Tempiate Visual Basic. Es muy importante
M enú del Proyecto M enú del Formulario que Ud., observe cada una de estas
j Aceptar Cancelar | Ayuda
ventanas.
1Ü Ver objeto
Establecer como inicial CU Ver código
Propiedades de Proyectol... Desea que en la ventana de propiedades se m uestre una breve
Propiedades
explicación de cada una de las propiedades.
Guardar proyecto
Agregar
Quitar proyecto
Guardar Forml Para ello, haga click con el botón derecho del
[c o m m a n d 1 CommandButton * |
Agregar ► Guardar Forml como. mouse en cualquier propiedad y luego active
la opción Descripción. Alfabética j Por categorías |
Quitar Forml
é=$ Imprimir... (Name) Command 1
Appearance 1 - 3D
1Imprimir... BackColor □ &HSOOOOO1
v' Acoplable v' Descripción
Cancel False
Ocultar v" Acoplable
v' Acoplable
Ocultar
Ocultar D efault False

C a p tio n
En cualquiera de los casos haga click en la opción Q U IT A R Devuelve o establece el texto
mostrado en la barra de título de
(Proyecto o Formulario). Descripción de las propiedades un objeto o bajo el icono de un

G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 39


^ lltÉ ll’- VISUAL BASIC como debe sen . . CAPÍTULO I: Entorno Del Visual Basic w m

FILOSOFÍA DE PROGRAMACIÓN EN VISUAL BASIC


Para desarrollar un programa en Visual Basic se crea un formulario y sobre
él se dibujan controles tales como cajas de texto, etiquetas, listas desplegables,
gráficos, botones de comandos, etc. A continuación se le asignan las propiedades
y finalmente se escriben las instrucciones relacionadas a cada uno de ellos. PREGUNTAS DE REPASO - N° 01
Quiere decir esto que cada control está ligado aun conjunto de instrucciones
01.- La ventana principal de una aplicación se llama:
que permanece inactivo hasta que ocurra el evento que lo activa.
02.- El entorno de Visual Basic está compuesto por:
EV ENTO: 03.- Qué es un Proyecto?
04.- Los controles se encuentran en:
Es una acción reconocida por un control u objeto para el cual se puede escribir
05.- Para activar la Ventana de Proyecto se debe pulsar:
instrucciones de respuesta. Los eventos pueden estar generados por una acción
06.- Dibuje el botón que sirve para ejecutar una aplicación.
del usuario como hacer click con el mouse, pulsar una tecla, etc.
07.- ¿Qué debe hacer si al activar el Visual Basic no encuentra la Barra
CONTROL: Estándar?
08.- Dibuje el botón para grabar un proyecto.
Es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comandos
09.- ¿Qué tecla activa la Ventana de Propiedades?
o un marco que se coloca en un formulario para presentar datos, realizar una
10.- Dibuje el botón que sirve para finalizar una aplicación.
acción o mejorar el aspecto de un formulario, etc.
11.- ¿Qué ventana contiene las características que se les puede asignar a
O B JE T O : los controles?
12.- Dibuje el botón que activa la Caja de Herramientas.
Es una instancia de una clase que combina datos y procedimientos. Por ejemplo
un control cuando es ejecutado en un formulario es un objeto. 13.- ¿Qué es un método?
14.- Dibuje el botón que sirve para llamar o abrir un proyecto.
CLASE: 15.- ¿Qué contiene la Barra Estándar?
16.- ¿Qué teclas permiten visualizar el formulario?
Es la definición de un objeto incluyendo su nombre, sus propiedades y métodos
17.- ¿Qué debe hacer si al ingresar al Visual Basic no se visualizan todos
y cualquier evento que tenga.
sus componentes?
PR O PIED A D : 18.- ¿Cuáles son los pasos para desarrollar una aplicación?
19.- ¿Cuándo se ejecutan las instrucciones de los controles?
Es un atributo con un nombre determinado que se le asigna a un control para
20.- ¿Qué es un evento?
definir una característica del objeto como por ejemplo, el tamaño, el color, o la
posición en la pantalla, o un aspecto de su comportamiento, como por ejemplo,
¡C U ID A D O !
si está oculto o no.

M ÉTODO: Le recomiendo no seguir con los próximos temas mientras


no obtenga un veinte en esta autoevaluación.
Es un procedimiento similar a una instrucción o función que opera sobre objetos
específicos.

G rupo E d it o r i a l Megabyte" G rupo E d it o r i a l Megabyte 41


CAPITULO II

Datos Personales
G ua rd a r co m o tip c; I Form File:
%T" ‘

OBSERVACIONES

Nuevo Alumno Finalizar

DESCRIPCION
DE LOS
CONTROLES BÁSICOS
EL FORMULARIO:

Es una ventana muy importante porque aquí se dibujan o pegan todos los
controles que necesitamos utilizar en nuestro programa o aplicación. Se
pueden utilizar tantos formularios como se necesiten, y dependiendo de la
utilidad que se les dé, éstos serán de diferentes tipos. Así, se puede crear un
formulario que contenga un gráfico, para visualizar información o para
ingresar datos.

P R IN C IP A L E S P R O P IE D A D E S D E U N F O R M U L A R IO :

ÑAME
Permite asignar un nombre al formulario. Por defecto el nombre es FO RM 1,
FORM2, FORM3, etc.
BACKCOLOR
Selecciona un color de fondo para el formulario.
B O R D E R ST Y L E
Selecciona el estilo de presentación y comportamiento del formulario.
C A P T IO N
Asigna un Título al formulario.
CONTROLBOX
Indica si se visualizan los botones de control del formulario (Maximizar,
Minimizar, etc.).
EN A B L ED
Indica si el formulario debe estar activado o no. Si no esta activado, no
responde a ningún evento.
FO N T
Indica el tipo, tamaño y estilo de letra de los controles que se dibujen en el
formulario.
IC O N
Selecciona un icono para el formulario.

E d it o r ia l Megabyte 45
CAPÍTULO II:Descripción de los Controles Básicos
4S S S & VISUAL BASIC como debe ser.. .
LEFT
Permite indicar la posición horizontal del formulario. ¿CÓMO ASIGNAR UNA PROPIEDAD?
M A X B U TTO N
Indica si se visualiza el botón Maximizar. Para asignar una propiedad a un control (formulario, caja de texto,
M IN B U T T O N etiqueta, botón de comando, etc.), primero debe seleccionarlo, haciendo un
Indica si se visualiza el botón Minimizar.
click en él, luego pulse <F4> o el botón propiedades.
M O U S E IC O N
Se utiliza para indicar un icono que debe reemplazar al puntero del Mouse
cuando éste se encuentre dentro del formulario. Para que esto suceda debe
BOTON DE PROPIEDADES
asignar el valor 99-Custom a la propiedad MousePointer.
M O U S E P O IN T E R
Se utiliza para indicar el estilo del puntero del mouse.
M OVEABLE BOTON PARA
Indica si el usuario puede mover el formulario. ES* i S S S B S Π- Ia !.*J SELECCIONAR EL
NOMBRE DEL CONTROL Al.
P IC T U R E CONTROL AL JF o r m i Form .I.J
CUAL LE
Para seleccionar un gráfico que sirva de fondo para el formulario. CUAL SE LE ^ T Alphabetic ] Categorized | QUEREMOS
ESTA ASIGNADO ASIGNAR
SCALEM ODE PROPIEDADES Aubzftëèdraw False PROPIEDADES
Asigna la unidad de medida para el tamaño o ubicación del formulario o cualquier jáckColor □ &H8000000

/ BorderStyle 2 - Sizable
otro control. La unidad de medida que se activa en forma automática es TWIP.
Un TWIP es una unidad de medida estándar para todo tipo de pantallas la ClipControls True
FORMAS DE
cual nos permite asignar el mismo tamaño o ubicación de los controles sin VISUALIZAR ControlBox True

importar el tipo de pantalla que utilizamos. Un TWIP es igual a 1/20 de un LAS DrawMode 13 - Copy P e n __
BARRA DE
PROPIEDADES DrawStyle 0 - Solid DESPLAZAMIENTO
punto de impresora. 1440Twips equivalen a una pulgada y 567 equivalen a DrawW idth 1 DE
un centímetro. Enabled True PROPIEDADES
SH O W IN T A SK B A R FillColor ■ &HGÜ0Û000
1 - Transparen
Indica si el formulario se debe visualizar en la barra de tareas cuando se FillStyle
Font MS Sans Serif
esta ejecutando. FontTransparenl True
ST A R T U PPO SIT IO N ForeColor ■ &H8000001
Permite seleccionar la posición inicial del formulario en la pantalla. Height 3600
H elpContextID 0 ^
TOP
Se utiliza para indicar la posición vertical del formulario en la pantalla.
V ISIB L E
Indica si el formulario se debe visualizar.
W ID T H
NOTA:
Permite indicar el ancho del formulario. Usted, puede modificar el ancho o altura de esta ventana.
W IN D O W STA TE
Selecciona el modo de presentación del formulario: Normal, Minimizado o
Maximizado.

G rupo E d it o r i a l Megabyte 47 ■ w JÜ
G ru po E d it o r ia l Megabyte <
é S fÍk > VISUAL BASIC como debe se r.. .
ETIQUETA (Label) :
* Según la propiedad que ha elegido, Ud. Puede visualizar:
A
Es un control que se utiliza para mostrar mensajes en una aplicación.
1 II Al dibujarlo en el formulario se visualiza: Label 1, Label2, Label3, etc.

2 D S H j J Al dibujar un control no debe preocuparle el tamaño Inicial que tome,


porque se puede modificar de una manera fácil y rápida.
3 (None) ^ PR IN C IPA LE S PR O PIED A D E S DE UNA ETIQU ETA :

1.- Para escribir el texto que se desea mostrar en la propiedad. ÑA M E


Perm ite asignarle un nombre. Por defecto el nombre es Label 1,
2.- Para que al hacer un click en la flecha hacia abajo se visualice una Label2, Label3, etc. Según el número de Etiquetas que se dibujen en el
lista de valores que podemos asignar como propiedad. formulario.

3.- Para que al hacer un click en los tres punto se visualice una ventana A L IG N M E N T
de diálogo. Alinea el texto que se encuentra en la Etiqueta: Left (Izquierda),
Right (Derecha) y Center (Centro).
A P PE A R A N C E
NOTA : P uede m o d ific a r c u a lq u ie ra de las p ro p ie d a d e s y Cambia la apariencia de la Etiqueta.
com probar sus efectos ejecutando el form ulario con la
tecla <F5> o con el botón Ejecutar y para term inar . U A U T O S IZ E
ejecución pulse la tecla <A LT> + <F4> o click en el Para indicar si el tamaño de la Etiqueta depende del tamaño de la
botón finalizar. letra seleccionada.
BACKCOLOR
Selecciona un color de fondo de la Etiqueta
* B O T O N E JE C U T A R
B A C K ST Y L E
Asigna el estilo del fondo de la Etiqueta.
B O T O N F IN A L IZ A R
B O R D E R ST Y L E
Asigna el estilo del borde de la Etiqueta.
C A P IT O N
Para escribir el texto o información que desea visualizar.

G ru po E d it o r ia l Megabyte-^ ¡ jllll^ G ru po E d it o r ia l Megabyte 49


é S B ib ' VISUAL BASIC como debe ser.. . , < $8 APÍTULO I I .-Descripción de los Controles Básicos %
PONT MUY IMPORTANTE:
Permite asignar el Tipo, Tamaño y el Estilo de la letra del texto o Para trabajar con un control, debes seleccionarlo.
mensaje que desea visualizar en la Etiqueta. Siempre debes mirar la caja de propiedades para darte cuenta con qué
FORECOLOR control estas trabajando.
Permite asignar el Color de la letra del texto o mensaje que desea
visualizar en la Etiqueta. Ejem plo: El formulario siguiente tiene una etiqueta, pero esta seleccionado
VISIBLE el formulario.
- lai *1
Indica si la Etiqueta se debe visualizar o no. P C o n tro l
A ctivo
A P L IC A C IÓ N D E S A R R O L L A D A N° 01
MI PR IM ER A APLICACION Propiedades - Formi
/
I F o r m i Form

Alfabética | por categori!


VISUAL BASIC (Nombre)
Appearance
Forml
1 - 3D —1
AutoRedraw False
□ &H8000000F8
Como debe ser... BackColor
BorderStyle 2 - Sizable
Caption Forml

M± nombre es ; ¿fuan. José Castane<t* Leon


En el formulario siguiente se tiene una etiqueta, la cual está activada.

P a ra d e sa rro lla r u n a aplicación debe seguir los siguientes pasos:


, C o n tro l
1.- C re a r una nueva aplicación. I□ I x ||
1 A ctiv o
De la opción F IL E de la Barra de Menú elegir N E W PROJECT.
2.- Mueva y ajuste el tamaño del Formulario.
3.- Dibuje los controles.
4.- Defina las propiedades del formulario y controles.
5.- Escriba las instrucciones para los controles. (Nom bre) Label 1 jf v
6.- Guarde la aplicación. Alignment 0 - Left Justify
Appearance 1 - 3D
7.- Ejecute la aplicación. AutoSize False
BackColor □ &H8000000F8
NOTA: Si durante el diseño de la aplicación desea b o r ra r un control, BackStyle 1 - O paque
BorderStyle 0 - None
debe seleccionarlo haciendo un click en él y luego pulsar la tecla D ELETE Labell
Caption
(SUPRIM IR).
Megabyte 51
G rupo E d it o r i a l Megabyte G rupo E d it o r i a l
VISUAL BASIC como debe ser.. CAPITULO II.Descripción de los Controles Básicos
Los puntos alrededor de un control indican que este se encuentra DESARROLLO DE LA APLICACIÓN N° 01
activado.
Para desarrollar la aplicación N° 01 se siguen los siguientes pasos:
MODIFICAR ELTAMAÑO DE LOS CONTROLES
Para modificar el tamaño de un control, primero debe seleccionarlo A justar el tam año D ibujar los
del Form ulario C ontroles
haciendo click en él. Una vez seleccionado se visualizará los puntos
que permiten modificar su tamaño, entonces lleve el puntero del mouse JSl-ül
por uno de estos puntos hasta que visualice una flecha en doble sentido, Labell

luego arrastre el mouse ampliando o reduciendo el tamaño del control.


El control esta
Formi EHH1 listo para Label2
modificar
su ancho

Labell Label3

3.- Asignar las propiedades a los Controles

CONTROL CAPTION ALIGNMENT AUTOSIZE FONT BORDERSTYÜ


FO R M I M I P R IM E R A A P L IC A C IO N — — — —
El control esta listo El control esta listo para
V IS U A L B A S IC C e n te r T rue 28 0 -N o n e
para modificar su— modificar su ancho LA B EL 1
ancho LABEL2 C om o d eb e ser... C en ter T rue 14 1-F ixed Single

LABEL3 Mi no m b re e s Ju an José.. R ight T rue 10 0 -N o n e


MOVER UN CONTROLEN EL FORMULARIO
Para m over un control haga clic dentro del control y arrastre el Si desea que a¡ ejecutar la aplicación el formulario ocupe toda
mouse hasta la posición donde desea moverlo. Observará la siguiente la pantalla, su propiedad W indow state debe tener el valor 2
pantalla. fmaximized).
■ü. Formi
En esta aplicación no se escriben instrucciones porque sólo
permite mostrar mensajes.
Labell
Posición del control A.Guarde o grabe la aplicación.
en el formulario

5.Pulse la tecla F5 o el botón ejecutar para que el formulario se ejecute


y observar los resultados de esta aplicación.

G ru po E d it o r ia l Megabyte 53 « H »
 •CAPITULO II'.Descripción de los Controles Básicos
I l b VISUAL BASIC como debe s e r ... >
G U ARDA R O G R A B A R UNA A PLIC A C IÓ N . VENTANA PARA GRABAR UN FORMULARIO
Selecciona Carpeta Crea una Nueva
Carpeta
Existen dos formas de guardar una aplicación: Acción que
Actual otra carpeta Anterior Carpeta
está realizando
1 Haciendo click en la figura del Disco que se encuentra en la Barra
Estándar Q-ave Pieiect A* jd -ii
G u ardar en: _já V b =3 dü
3cap t I R e p o s try __ I v b o n lin e Formas de
2.- De la opción F IL E "Archivo" de la Barra de Menú, elegir Guardar J Clisvr I sam ples __ J W in a p i ver los
J d oe s L J S e tu p I W iz a rd s Formularios
Proyecto. Si desea guardarlo con un nombre diferente al asignado j H e lp __ 1 s e tu p k it CALEN DAR y carpetas
inicialmente, debe elegir la opción Guardar Proyecto Como. j O dbc (__J T em p ia te <jbf c a s e •
j report — I T sql checkl
_Formularios y
carpetas
Primero le pide el nombre de cada formulario (*.FRM) que forma jl L jJ
parte de la aplicación y al final le pide el nombre del Proyecto (*. VBP) N o m b re d e archivo : G uardar
□ -
el cual se utiliza para abrir o recuperar posteriormente la aplicación. G u ardar c o m o tipo: {P ro je c t Filep (x.v b p ) C a ncela r
Botón para
Ayuc a Grabar

VENTANAPARAGRABAR UN FORMULARIO
Tipo de archivo que está Cancela la acción
C aja para escribir el nombre del formulario que
desea grabar grabando
A cción que C arpeta Selecc rna C arpeta C rea una N ueva
está realizando A ctual otra carpeta A nterior C arpeta " MUCHO CUIDADO "
Para cada formulario de un proyecto y para cada proyecto que usted
S a v e F ile A s I grabe, utilice nom bres d istin to s porque de lo con trario el nuevo
Guardai en: | M Vb
+
m J formulario o proyecto borrará al anterior. Por ejemplo, si ya tiene un
J Clisvr L - Ï Setup L U Wizards proyecto grabado con el nom bre trabajo y graba un nuevo proyecto
j Help Formas de
L_J setupkit hh
ver los
con el mismo nombre, entonces el primer proyecto se borrará y ya no
J Odbc —J T empiate ^ PROG01
j report Formularios podrá recuperarlo. Esto tam bién sucede con los formularios. Por eso
L J T sql Q PRO G02 y carpetas
J Repostry __ j vbonline tenga M U C H O CU ID A D O
1samples L J Winapi
^Form ularios y
carpetas
Antes que el proyecto o formulario se borre se muestra un mensaje
existentes de advertencia.
Nombre de archivo: ' |9BRr Guardar |" G u a rd a i p ro y e c to co m o

Guardar como tipo: I Form FileJ (x.frm) C :\A rc h iv o s de p ro g ra m a \M icroso ft V isu al S tu d io \V B 9 8 \T ra b a jo .vb p v a existe.
Cancelar ¿ D esea reemplazarlo?

Ayuda Botón para


G rabar

Si usted responde SI, el nuevo proyecto o formulario reemplaza al


C aja para escribir el nom bre del form ulario que T ip o de archivo que está ^ C ancela la acción anterior (lo borra) y si responde NO, Visual Basic le pide otro nombre.
desea g ra b a r grabando

G rupo E d it o r i a l Megabyte ss mm
VISUAL BASIC como debe ser.. .
Para Evitar estos problem as te recom iendo que cada proyecto o E JE C U T A R UNA A P L IC A C IÓ N
aplicación que hagas lo grabas en una ca rp e ta diferente, esto también
te permite administrar mejor tus proyecto. Existen tres formas de ejecutar una aplicación:
A B RIR O R E C U PE R A R UNA A P L IC A C IÓ N 1.- Pulsando la Tecla <F5>.
2.- De la opción E je cu ta r de la Barra de Menú, elegir Iniciar.
Existen tres formas de abrir o recuperar una aplicación:
3.- Haciendo click en el Botón E jecu tar que se encuentra en la Barra
1 Haciendo click en la figura del L ibro que se encuentra en la Barra Estándar.
Estándar.
> BOTÓN EJECUTAR
2.- De la opción ARCHIVO de la Barra de Menú, elegir A b rir Proyecto.
NOTA:
3.- Pulsar las teclas (CTRL + O).
Según como esta configurado Visual Basic, cada vez que ejecuta un
programa le preguntará si desea guardar los cambios realizados. Esto se
Una vez que se visualiza la ventana para abrir un proyecto, usted
puede activar o desactivar en la opción H erram ientas de la barra de menú
puede hacer doble clic en el nombre del proyecto o escribir su nombre
luego en O pciones y finalmente en la hoja E ntorno
en la caja indicada y luego haga clic en el botón ABRIR. Si al abrir un
proyecto, no se visualiza, pulse CTRL + R para activar la ventana de
proyecto y luego doble clic en Forms y/o en el formulario que desea j
E dito r | F o rm a to d e l e d ito r | G e n e ra l | Acopl< , E n to rn o A v a n z a d o |
C u a n d o s e Inicie Visual B asic: M o stra r plantiB as p a r a :
visualizar. C~ p r e g u n ta r p o r u n p r o y e c to P7 F o rm ularios

C r e a r u n p r o y e c to p re d e te rm in a d o W F o rm u lario s MDI
VENTANAPARA ABRIR UN PROYECTO P ? M ódulos

C u a n d o s e inicie u n p ro g ra m a : W M ódylos d e c la s e

Muestra todos los proyectos que tienes grabados. <*■ g u a r d a r lo s c a mbios! f y C o n tro le s d e u s u a rio

p r e g u n ta r si s e g u a r d a n los cam bios W P á g in a s d e p ro p ie d a d e s


Muestra la acción aue esta C f¿o g u a r d a r los cam bios W D o c u m e n to d e u su a rio
Muestra los orovectos recién
D irecto rio d e p lantillas:
l e ARCHI VOS DE PROGRAMA\M ICROSOFT VISUAL STUDIO\VB98\T e m p ia te
m
E x is te n te j R e c ie n te s J

fju s c a r en: [ «J V b
a J a l frnr-il
] D a ta e n v iro n m e n t
J T e m p iate
C o le gio 3 S | H o te l S u e ld o s Como puede observar, aquí también se puede cambiar otras configuraciones.
C o m p ra s Info rm e s T est
1 T sq l C o n ta b le s Juegos T ie n d a
) W iz a rd s E xa m e n Pagos T ra b ajo
A lu m n o s
B a la n c e
F a rm a cia
H o ra rio s
P s ic o lo g ia U n iv e rs id a d MUY IMPORTANTE:
S is te m a s i U n iv e rs o d a d

UL l.S i al ejecu tar una aplicación no se v isualiza el form ulario,


N o m b re d e a rc h iv o : \ verifique que el form ulario no tenga en su propiedad Visible el valor
I'P O d e a rc h iv o s : j P ro y e c to (“ . v b p ;“ .m a kj". vb g ) F alse o que en su p ro p ie d a d W in d o w S tate no ten g a el v alor I-
M inimized (M inimizado).
2. Si al ejecutar la aplicación el form ulario se visualiza pero no
Caja para Tipo de Abre el Muestra los Proyectos que responde a ningún evento incluyendo los controles que contiene,
escribir el archivo que ” ------ - están mas a la derecha
entonces verifique que su propiedad Enabled no tenga el valor False.
& ► 56 G ru po E d it o r ia l M eg a b y te^ ¡ ||¡ ||^ G rupo E d it o r ia l Megabyte
%■ VISUAL BASIC como debe se r.. .
F I N A L I Z A R UNA A P L IC A C IÓ N CREAR UN ARCHIVO EJECUTABLE (*.EXE)
Existen cuatro formas de Finalizar una aplicación: Un archivo ejecutable es un archivo con la extensión EXE donde se
1.- Pulsando las Teclas <ALT> + <F4>.
encuentran unidos todos los formularios, instrucciones y módulo de una
2.- De la opción Ejecutar de la Barra de Menú, elegir T erm inar.
3.- Haciendo click en el botón cerrar del formulario (X). aplicación.
4.- Haciendo click en el Botón F in alizar que se encuentra en la Barra Tiene las siguientes ventajas:
Estándar. • Permite ejecutar la aplicación sin necesidad de ingresar al Visual
■ BOTÓN FINALIZAR Basic.
• Evita que alguien visualice las instrucciones que hemos utilizado en
GRABAR UN PROYECTO E N UN D IS K E T T E nuestra aplicación.
• Evita que alguien modifique las instrucciones que hemos escrito en
Si desea llevar tu proyecto en un diskette, debe copiar en él no sólo la aplicación.
el proyecto (*.VBP) si no también cada uno de los formularios (*.FRM) u
otros componentes que contiene como por ejemplo una base de datos, etc. Para crear un archivo ejecutable elija primero la opción ARCHIVO
Si ya grabaste tu aplicación er, el disco de la computadora (disco de la barra Estándar y luego GENERAR EXE. Visual Basic le pedirá el
duro) y te encuentras en el Visual Basic con tu aplicación en la pantalla que nombre del archivo que desea crear. El nombre por defecto que presenta es
deseas llevar en un diskette, entonces debes activar la ventana de proyecto el nombre con el que Ud. a grabado la aplicación.
(CTRL+R) hacer clic con el botón derecho del mouse en cada formulario
(uno por uno) y elegir G u a rd a r xxx.Frm Como. Esta opción también se Guardar en: p _il Vb98 M l » J f ü ml
2J Dataenvironmenl i*""1Link
encuentra en la opción Archivo de la barra de Menú donde encontrarás *1T empiate feV b 6
_2j T sql Ce?Visdata
también la opción G ra b a r Proyecto Como la cual se utiliza para guardar el *"1Wizards
3 C2
proyecto, entonces haga clic donde se selecciona las carpetas y elija Disco **~1Cvpack
3 1/2A:
tiombre de archivo: ITrabaio 1 Aceptar J
Cancelar I
r? ix i Ayuda i
G u a rd a r e n:
M
Vb98
Mi PC
« ■■■.. ^ ,
^
mi Ml ou immJ Qpciones. . 1
_ _ J D a t a e n v ir i
D is c o d e 3H (A :)
.. I T e m p ia te
¿ a J J u a n jo s é (C .)
__J T s q l
1 ... 1 A r c h iv o s d e p r o g r a m a
Al hacer click en el botón A ceptar o pulsar ENTER después de ingresar
_ J W iz a r d s
C3 d d d
I 1 M ic r o s o f t V is u a l S tu d io el nombre, Visual Basic genera en forma automática el archivo ejecutable.
Ö e C e d ti (D :) Una vez creado el archivo ejecutable Ud. puede crearle un acceso directo
1....1 S e r v ic io s e n lin e a
para poder ejecutarlo desde el entorno del WINDOWS sin necesidad de
N o m b r e d e a r c h iv o : { R a y a 1 g u a rd a r activar el Visual Basic.
G u a r d a r c f im o | F o rm u la rio (x.frm )
T 1 C a n c e la r j
a r c h iv o s d e tip o :
¿ QUÉ ES UN ACCESO DIRECTO ?
A yuda j Un Acceso Directo es una manera rápida de ejecutar una aplicación des­
También puede utilizar el Windows para realizar esta copia. de el escritorio del Windows sin necesidad de activar el Visual Basic.
También nos permite acceder a arribos y carpetas.

G ru po E d it o r ia l Megabyte^ G rupo E d it o r i a l Megabyte 59 « fifi»


^ÉiÍÉÉÉ^ VISUAL BASIC como debe se r.. . VITULO II:Descripción de los Controles Básicos
CREAR UN ACCESO DIRECTO 3. De la pantalla anterior haga clic en la opción Acceso Directo para visualizar
la siguiente pantalla:
Hay tres maneras de crear un acceso directo:

1. Desde una carpeta. E s c rib a el n o m b re y la u b ic a c ió n d e l e le m e n to p a ra


e l q u e d e s e a c re a r u n a c c e s o d ire c to , o b ie n ,
2. Desde el escritorio. b u s q u e el e le m e n to h a c ie n d o c lic e n E xa m in a r.
3. Desde el Menú de Inicio. L ín e a d e c o m a n d o s :

Para crear un acceso directo en el escritorio del Windows, primero E xa m inar..


debe salir al escritorio y luego seguir los siguientes pasos:

En cualquier parte libre del escritorio haga clic con el botón derecho
del mouse. Se mostrará el siguiente menú de opciones:
Active Desktop ►

Organizar iconos ►
Alinear iconos C a n c e la r

Actualizar

' ' Éenát •


De la pantalla anterior haga clic en el botón Examinar para buscar el archivo
Deshacer Eliminar Ejecutable (*.EXE) que usted ha creado
Nuevo

Propiedades E xa m in a r
Active Desktop ►

Organiza» iconos ► Buscar en: Vb98 a i » I B a l


AJinear iconos
_JÍDataenvironmen(j IZÜLink
Actualizar
Lleve el puntero del mouse a la opción Nuevo. Se 1 T empiate Q Trabajo
Pegar
mostrará la siguiente pantalla. ZD T sql ^ VbS
f'ft3<£á c ñjvtfpy [
Deshacer Eliminar 1Wizards G jiV isd a la
Z 3 C2
I _ J Carpeta
¿j Acceso directo
1Cvpack
Propiedades

^ W inZ p File
J j] Documento de texto
Documento de Microsoft Word Abrir
Nombre de archivo: |
t i l Imagen de mapa de bits
A/chivo de sonido Tipo de archivos: | Programas Cancelar
~3
l¡ P Presentación de Microsoft PowerPoint
Hoja de cálculo de Microsoft Excel
ir CorelDRAW 8.0 Gráfico
@ Imagen Corel PHOTO-PAI NT 8.0
^1 Corel Media Folder
Normalmente Visual Basic Graba el archivo ejecutable que usted crea en la
O Adobe Photoshop Image
PowerDesigner 8 Physical Data Model File carpeta:
^ Microsoft Data Link C:\Archivos de programa\M icrosoft Visual Studio\VB98

y 60 G rupo E d it o r i a l M eg a b y te^ G ru po E d it o r ia l Megabyte 61


W VISUAL BASIC como debe ser.. .
U na vez que e n c u en tra el archivo selecciónelo haciendo doble clic Después de cambiar o no el nombre del acceso directo haga clic en el botón
en él o un solo clic y luego en el botón A brir. Se mostrará la siguiente Finalizar. Observará inmediatamente en el escritorio del Windows un nuevo
pantalla donde se muestra la ruta y el nombre del archivo ejecutable. En icono.
nuestro ejemplo el archivo se llama TR A BA JO .EX E.
C re a r a c c e s o d ire c to

E s c r ib a e l n o m b r e y la u b ic a c ió n d e l e le m e n to p a r a
e l q u e d e s e a c r e a r u n a c c e s o d ir e c t o , o b ie n ,
b u s q u e e l e le m e n to h a c ie n d o c lic e n E x a m in a r.
L ín e a d e co m a n d o s:
| d e p ro g ra m a S M ¡ c ro s o ft V is u a l S tu d io S V B 9 8 \ T r a b a jo . e x e f '

li E x a m in a r... I

Sjy >I
«fi S~
s «*§>«•»»»*... 1
PB

NO TA:
De la pantalla anterior seleccione el botón Siguiente. Para ver las otras formas de crear un Acceso Directo consulte con el Manual
o Ayuda de Windows.
S e le c c io n e u n t ít u lo p a ra e l p ro g ra m a
MUY IM P O R T A N T E
S e le c c io n e u n n o m b r e p a r a e l a c c e s o d ire c to :

IT r a b a jo Si desea grabar y ejecutar el archivo *.EXE generado en una computadora


que no tenga instalado el Visual Basic, debe copiar en la carpeta
WINDOWS\SYSTEM de dicha computadora el archivo MSVBVM60.DL1,
que se encuentra en la misma carpeta de la computadora donde desarrolló
la aplicación. Si la aplicación trabaja con archivos externos como base de
datos también debe copiarlos en su carpeta respectiva. Si no copia el archivo
*.DLL se mostrará el siguiente mensaje cuando intente ejecutar la aplicación.
E rro r a l in icia r e l p ro g ra m a al
N o s e e n c o n tr ó el a r c h iv o D L L r e q u e rid o , M S V B V M 6 0 .D L L .
: A trá s ) j| C a n c e la r |

A c e p ta r j|

La pantalla anterior le permitirá en forma opcional cambiar el nombre para


NOTA:
el acceso directo.
También puede crear los Discos de Instalación de la Aplicación como se
Según los iconos (*.ico) que tenga grabados, Windows le pedirá también
explica en la página N° 307.
elegir el icono para el acceso directo.

62 G rupo E d it o r i a l M e g a b y te < |¡¡¡| G rupo E d it o r i a l Megabyte 63 4 M i


VISUAL BASIC como debe s e r ...
CA JA DE TEX TO (TEXT):
PA SSW O R D C H A R
fibj Para indicar el carácter que deseamos que reemplace a cada uno de los
caracteres que digitamos. Se puede utilizar por ejemplo cuando queremos
ingresar claves de acceso.
Es un control que permite al usuario el ingreso de datos por medio del teclado.
Al dibujarlo se visualiza: Textl, Text2, Text3, etc. SC R O L L B A R S
Para indicar qué barras de desplazamiento queremos que tenga la caja de
PR IN C IPA LE S PR O PIED A D ES DE UNA CA JA DE TEX TO : texto: Ninguna (None), Vertical, Horizontal o Ambas (Both).

ÑAME TA BIN D EX
Permite asignarle un nombre. Por defecto el nombre es Textl, Text2, Text3, Indica el orden en el que el cursor debe ubicarse en las Cajas de Texto.
etc. Según el número de Cajas de Texto que se dibujen en el formulario. Donde queremos que se ubique el cursor al, ejecutar la aplicación debe
tener el valor cero.
BACKCOLOR
Selecciona el color del fondo. T A B ST O P
Indica si el cursor debe ubicarse o no en una Caja de Texto.
ENABLED
TEX T
Activa o Desactiva la Caja de Texto. Si está desactivada se muestra en un
color opaco y no responde a ningún evento ni se puede ingresar datos. Almacena el texto que el usuario escribe en este control. Por defecto su
contenido es: Textl, Text2, Text3, etc. Para ingresar datos debe borrar este
FO N T contenido y dejar en blanco la Caja de Texto.
Permite asignar el Tipo, Tamaño y el Estilo de la letra del texto que se
escribe en este control. V IS IB L E
Indica si la Caja de Texto se debe visualizar o no.
FO RECO LO R
Permite asignar el Color de la letra del texto que se escribe en este control. APLICACIÓN DESARROLLADA N° 02
LOCKED - i n l x|
Permite que el usuario pueda o no ingresar o modificar el texto que se
encuentra en este control. El valor FALSE permite el ingreso o modificación
Datos Personales
y el valor TRUE lo evita.
Nombre
M AXLENGTH
Dirección
Para indicar el número máximo de caracteres que el usuario puede ingresar
T eléfono
en una Caja de Texto. El valor cero (0) permite que el número de caracteres
a ingresar sea ilimitado. Este valor es asignado por defecto. Centro de Estudios

M U L T IL IN E OBSERVACIONES

Indica si el texto a escribir en la caja de texto puede ocupar varias líneas. Se "1 ]
recomienda utilizarla junto con la propiedad SCROLLBARS para poder
desplazarse de una manera más rápida y fácil por el texto ingresado

G rupo E d it o r i a l Megabyte 65
> VISUAL BASIC como debe ser. . .
D esarrollo de la Aplicación: APLICACIÓN PROPUESTA N° 01
\ <. IN G R E S O DE P R O D U C TO S m m
_ |n |x |
1.- D ib u jar los controles. ♦
Nombre

Descripción
Labell
Precio Unitario

Label2 |T e>:H
Unidad de Medida
Label3 Jfext2
Stock
Label4 ffe x t3
Fecha de Vencimiento f
Label5 f f ext4

Label6
| Chic¡¿yo. 2 } de Agosto de 1.998
ÍText5

APLICACIÓN DESARROLLADA N° 03
O T T T rO T rrn rT a rr
n
2.- A signar las P ropiedades a los C ontroles.
ETIQUETAS
Nom bre
r~
CONTROL CAPTION ALIGNMENT BORDERSTYE Ciclo (del I al X )
!......
Labell Datos Personales Center 1-Fixed Single S exo [F /M ]
r~
LabeI2 Nombre Left O-None
Label 3 Dirección Left O-None
Clave
r~
D ire cció n E lectrón ica
Label4 Teléfono Left O-None i .................... .... ..
Label5 Centro de Estudios Left O-None L a d ir e c c ió n e le tró n ic a e s a s ig n a d a d e s p u é s
d e in g r e s a r to d o s io s r e g is tr o s ; p o r lo tardo,
Labeló Observaciones Center O-None U d. n o p o d r á in g r e s a r la

CAJAS DE TEXTO
CONTROL TEXT MULTILINE SCROLLBARS
TEXT1 En Blanco False None CARACTERISTICAS:
TEXT2 En Blanco False None
TEXT3 En Blanco False None 1. En el ciclo sólo se debe ingresar hasta 03 caracteres.
TEXT4 En Blanco False None 2. En el sexo sólo un carácter.
TEXT5 En Blanco True Vertical 3. En la clave hasta 05 caracteres y no se debe visualizar a medida
que se ingresa.
El formulario debe tener: INGRESO DE DATOS en su Caption. 4. No se debe permitir el ingreso de la dirección electrónica.

66 G ru p o E d ito r ia l Megabyte ^¡¡¡¡¡^ G ru p o E d it o r ia l Megabyte 67


17.S7 l / ItASIC como debe ser. < PÍTULO II'.Desciipción de los Controles Básicos
Iii nidlli) ilc l¡i Aplicación:
B O TO N DE CO M A N D O S (C O M M A N D ):
I I Xluijiu los controles.

Es un control que contiene instrucciones que se ejecutan cuando ocurre


La bell j|T e xtl un evento. El evento más utilizado es el evento CLICK, cuyas instrucciones
Label2
se ejecutan cuando el usuario hace un click en dicho control. Cuando se
|T ext2
dibuja se visualiza:Commandl, Command2, Command3, Etc.
Label3 ¡Text3 »

Label4
-----
[ i ext4 P R IN C IP A L E S P R O P IE D A D E S DE UN BOTON DE COMANDOS:
Label5 j í ext5
ÑAME
Label6 Permite asignarle un nombre. Por defecto el nombre es C om m andl,
Command2, Command3, etc. Según el número de Botones de Comandos
que se dibujen en el formulario.
2.- Asignar las Propiedades a los Controles. BACKCOLOR
E T IQ U E T A S
Selecciona el color del fondo. Para que acepte el color que se le asigna la
propiedad Style debe estar en modo Gráfico.
CONTROL CAPTION ALIGNMENT BORDERSTYE
Labell Nombre Left CANCEL
O-None
LabeI2 Ciclo (del I al X) Left Para indicar si las instrucciones que contiene se deben ejecutar cuando el
O-None
LabeI3 Sexo (F/M) Left usuario pulsa la tecla <ESC>.
O-None
Label4 Clave Left O-None C A P T IO N
Label5 Dirección Electrónica Left O-None
Labeló La dirección elec... Para indicar el título que debe tener el botón. El título que se le asigne
Center 1-Fixed S.
CAJAS DE TEXTO siempre se visualiza en el centro del botón de comandos. Ud. puede subrayar
CONTROL una de las letras del título usando antes de dicha letra el símbolo (&), esto le
LOCKED m axlength PASSWORDCHAR t e x t
TEXT1 False 0 permitirá ejecutar las instrucciones que contiene este control pulsando la
En Blanco En Blanco
TEXT2 False 3 tecla ALT y la letra subrayada.
En Blanco En Blanco
TEXT3 False 1 FO NT
En Blanco En Blanco
TEXT4 False 5 En Blanco Permite asignar el Tipo, Tamaño y el Estilo de la letra del texto que se
TEXT5 True () En Blanco En Blanco escribe como título del botón.

Caption del formulario : INSCRIPCION DE ALUMNOS P IC T U R E


Selecciona un gráfico para que se utilice como título del botón de comandos.
68 G E Mega byte<
r u po d it o r ia l
Ü P G ru p o E d it o r ia l Megabyte 69
^ ¡¡¡¡fe > VISUAL BASIC como debe se r.. .
STY LE
Para seleccionar su estilo de visualización: Estándar o Gráfico. Si el estilo es
ESCRIBIR INSTRUCCIONES PARALOS CONTROLES
gráfico, puede almacenar un gráfico como título y se le puede cambiar el
color del fondo. Para escribir instrucciones dentro de algún control se debe hacer
Doble Click en dicho control o una vez seleccionado (haciendo un click en
T O O L T IP T E X T él) se debe pulsar la tecla <F7>. Ingresará a la ventana de instrucciones,
Nos permite escribir un texto que se visualizará cuando el puntero del mouse llamada también ventana de código:
se ubique en el botón. El texto que se escriba sirve de ayuda para el usuario,
porque le puede dar a entender qué tarea o /unción realiza el botón.
V ISIB L E VENTANA DE C Ó D IG O Q IN STR U C C IO N ES
Para indicar si el botón se debe visualizar.

APLICACIÓN DESARROLI ADA N° 04 (Similar a la N° 02)


1 « INGRESO DE DATOS wmm
1 Datos Personales
N om bie j¡
D irecció n

T elé f on o

C en tro d e E stu d io s J- — ■

OBSERVACIONES
LiL l i

H u e v o A lum no j Finalizar
J
IM P O R T A N T E :
La propiedad de los controles son iguales a la Aplicación N°02. Lo que sigue
son de los nuevos controles. El nombre del control depende de dónde se hizo doble click o pulsó
CONTROL CAPITON CANCEL TOOLTIPTEXT <F7> y de la Propiedad Ñame que tiene el control. Si no ha cambiado la
Commandl &Nuevo AlumnoFalse Adiciona un nuevo alumno. propiedad Ñame del control se visualiza el nombre por defecto.
Command2 &Finalizar True Finaliza la aplicación.
NOTA: Cada control tiene un evento por defecto, si Ud. desea programar en un
• El resultado de TOOLTIPTEXT, se visualiza cuando al ejecutar la evento diferente debe hacer click en la lista de Eventos y si desea programar
aplicación se ubica el puntero del mouse por unos instantes en cualquiera dentro de otro control que pertenece al mismo formulario debe hacer click
de los botones. en la lista de controles (Flecha hacia abajo).
• Se debe escribir instrucciones dentro de los Botones.
• El símbolo & permite que una letra esté subrayada.
70 G rupo E d it o r i a l Megahyte I p l ^ G r u po E d it o r ia l Megabyte m 71 w m
^ Ü Íy ¡É ^ VISUAL BASIC como debe se r.. .
EV EN TO S M OU SED OW N Y M O U SEU P
PRINCIPALES EVENTOS Las instrucciones que escribimos en el MouseDown se ejecuta se presiona
ACTIV A TE
un botón del mouse.Las instrucciones que escribimos en el evento MouseUp
Es un evento del formulario. Las instrucciones que se escriben dentro de
se ejecutan cuando se deja de presionar un botón del mouse.
este evento se ejecutan cuando el formulario es activado.
CHANGE Estos eventos reciben cuadro (4) valores y se almacenan en la variables
Las instrucciones que se escriben dentro de este evento se ejecutan cuando Button, Shift X, Y.
se modifica el contenido del control.
Prívate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As
C L IC K
Single, Y As Single)
Las instrucciones que se escriben dentro de este evento se ejecutan cuando End Sub
se hace un click o pulsa ENTER en un control. Prívate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y
D B L C L IC K As Single)
Las instrucciones que se escriben dentro de este evento se ejecutan cuando End Sub
se hace doble click control.
DEA C T I VATE La variable BUTTON recibe un valor que indica el botón del mouse que se
Es un evento del formulario. Las instrucciones que se escriben dentro de presionó:
este evento se ejecutan cuando el formulario es desactivado.
G O T FO C U S Valor
Las instrucciones que se escriben dentro de este evento se ejecutan cuando 1 Indica que se presionó el botón Primario.
el cursor se posiciona en un control. 2 Indica que se presionó el botón Secundario.
IN IC IA L IZ A T E 3 Indica que se presionó el botón Central.
(No todos los mouse tiene 3 botones)
Es un evento del formulario. Las instrucciones que se escriben dentro de La variable SH IFT recibe el valor que indica la tecla especial que se tiene
este evento se ejecutan cuando el formulario se inicializa. presionada cuando pulsa o deja de pulsar uno de los botones del mouse:
K EY PR ESS
Mayús (Shift), CONTROL (Ctrl) o ALT.
Las instrucciones que se escriben dentro de este evento se ejecutan cuando
se pulsa una tecla en el control. Valor
LOAD 1 Indica que se tiene presionada MAYÚS (Shift).
Es un evento del formulario. Las instrucciones que se escriben dentro de 2 Indica que se tiene presionada CONTROL (Ctrl).
este evento se ejecutan cuando el formulario es cargado en memoria. 3 Indica que se tiene presionada ALT.
L O ST FO C U S
Las instrucciones que se escriben dentro de este evento se ejecutan cuando Las variables X, Y reciben el valor de la posición Horizontal y Vertical del
el cursor sale en un control. mouse respectivamente.
T IM E R
Es un evento del control Timer (Reloj). Las instrucciones que se escriben M UY IM PO R T A N TE
dentro de este evento se ejecutan cada cierta cantidad de segundos, que El botón primario del Mouse es el botón principal y permite seleccionar los objetos
Ud. Deberá indicar. de una manera normal y casi siempre es el botón Izquierdo. El botón secundario del
U N LO A D Mouse permite acceder a los menú contextúales y casi siempre es el botón derecho.
Es un evento del formulario. Las instrucciones que se escriben dentro de Los menú contextúales contienen las opciones mas utilizadas de una aplicación.
Puede utilizar la configuración del Panel de Control de Windows para configurar el
este evento se ejecutan cuando el formulario es descargado de la memoria.
Mouse.

72 G rupo E d it o r i a l Megahvte l i l i l í G ru po E d it o r ia l Megabyte


V
Á VISUAL BASIC como debe se r.. . ¡§ É I ¡I ^CAPÍTULO II:Descripción de los Controles Básicos
En este libro al botón secundario se le llama “Botón Derecho” VISUAL BASIC AYUDA A PROGRAMAR
DESARROLLO DE LAAPLICACIÓN N° 04 Cuando escribe el nombre de un control que tiene en el formulario y luego
En la aplicación N° 04 sólo se necesita programar el Evento Click de cada Botón de un punto se visualiza las propiedades o eventos que puede asignar a dicho
Comandos. control. Una vez que se encuentra seleccionada (Sombreada) la propiedad
ELBOTÓN: NUEVO ALUMNO. o evento en forma automática o en forma manual (con la flecha hacia abajo
Debe limpiar las cajas de texto y ubicar el cursor en Textl para ingresar un nuevo o h acia a rrib a), pulse la barra e s p a d a d o r a para que se e scrib a
alumno. automáticamente.
EL BOTÓN: FINALIZAR. Esta ayuda se puede activar o desactivar en la opción:
Debe finalizar o terminar la aplicación, ^sto también debe suceder si se pulsa la tecla Herramientas\Opciones\Editor\Lista de miembros automática
ESC. También le ayuda cuando escribe una función visualizando los parámetros
Entonces dentro del evento click del botón Nuevo Alumno se debe escribir: que necesita. Cuando esto ocurre quiere decir que ha escrito correctamente
Textl = ”” el nombre del control o el nombre de la función.
Text2 = ””
Text3 = ”” I P P r o y e c t o l - F o i m l (C ó d i g o ]
1t Proyecto! • Form! (Código)
IC o m m a n d l
Text4 = ”” " l i J c " ck
Commandl Click
P r i v a t e S u b C o m m a n d l _ C l i c k IT
Text5 = ”” T e x t 1.
Textl.Setfocus E n d S [^lÁiignment Private Sub C o m m a n d l _ C l i c k ()
eü* Appearance Dim R As Intger
Y dentro del botón finalizar se debe escribir: End Ef? BackColor
i**? BorderStyle R = Right (
nf? CausesValidation End S Right(SftMg,Le)i#/lsi-onfl) [
NOTA: eS* Container
ei? DataChanged
• La instrucción END finaliza un Programa, SETFOCUS ubica el cursor en un
i f 1
determinado control y Textl = ”” borra el contenido de Textl. Entre las comillas no
debe dejar espacios en blanco. A P L IC A C IÓ N PR O PU ESTA N° 02
• Después de escribir las instrucciones de un control puede cerrar la ventana haciendo Escriba la siguiente aplicación:
clic en el botón cerra (X). Si se hace un click en el botón de comando N° 1 (Nombre), se debe visualizar
• Las instrucciones quedan grabadas cuando se graba el proyecto o el formulario. tu nombre. Si se hace un click en el botón de comando N° 2 (Centro de
Estudios), se debe visualizar el nombre del colegio, instituto, universidad,
ASPECTO FINAL DE LAS VENTANAS DE COMANDOS etc. donde estudias. Si se hace un click en el botón de comando N° 3 (Fecha
BOTONNUEVO ALUMNO BOTON FINALIZAR de Nacimiento), se debe visualizar la fecha en que naciste.
O - | n |_ g j

Private Sub Command2_Click() ¿


End
End Sub N o m b re ¿I C entro d e E s tu d io s F e c h a d e N a c im ie n to

Salir

G ru po E d it o r ia l M egabyte^ G rupo E d it o r i a l Megabyte 75


VISUAL BASIC como debe s e r ...
A P L IC A C IÓ N D ESA R RO LLA D A N° 05
TR A BA JA N D O CO N LO S N O M B R ES DE LOS C O N T R O L E S Esta aplicación permite ingresar el nombre, fecha de nacimiento, DNI y
domicilio actual de una persona utilizando la propiedad Ñame de los controles.
Todos los controles tienen asignado un nombre automáticamente cuando . In g re so de D a lo s
son dibujados en el formulario, esto lo puede confirmar mirando la propiedad
■Nombre..................
Ñame (Nombre) de cada control que dibuja en el formulario.
! Fecha de Nacimiento ! !

■DNI

Por ejemplo: Domicilio Actual •

La prim era etiqueta (Label) que dibujas en el form ulario tiene Salir

automáticamente el nombre Label 1, la segunda Label2, etc.

La primera caja de textos (Text) que dibujas en el formulario tiene Paso N° 01: D ib u jar los controles.

automáticamente el nombre T extl, la segunda Text2, etc. • Labell-

El primer botón de comando (Command) que dibujas en el formulario : Label2 :

tiene automáticamente el nombre Command 1, el segundo Command2,


- Label3 • ; |Texl3
etc.
Label4- • ............| Text 4

Para desarrollar una aplicación puedes utilizar estos nombres que se asignan Command! : Command2

automáticamente al ser dibujados en el formulario asignarles nombres que


usted cree conveniente (ESTO ES OPCIONAL). Paso N° 02: D ib u jar los controles.
ETIQUETAS
N O TA : CONTROL CAPTION AUTOSIZE
Norm alm ente los controles en su propiedad Caption o Text tienen lo L a b e 11 Nombre True
mismo que se asigna automáticamente en la propiedad Ñame, por eso Label2 Fecha de Nacimiento True
LabeB DNI True
tenga mucho cuidado de no modificar la propiedad Ñame en lugar de Label4 Domicilio Actual True
la propiedad Caption o Text.
CAJAS DE TEXTO
CONTROL TEXT NAME
Textl En Blanco Nombre
E jem plo: Text2 En Blanco Fecha
Text3 En Blanco Dni
Text4 En Blanco Domicilio
En la siguiente aplicación se les asigna a los controles nombres distintos a
los que Visual Basic les asigna en forma automática. CAJAS DE TEXTO
CONTROL CAPTION NAME
Coiranandl Nuevo Nuevo
Command2 Salir Salir
^ G rupo E d it o r i a l Megabyte 77
76 G rupo E d it o r i a l M egabyte“
VISUAL BASIC como debe se r.. .
Paso N° 0 3:E scribir las instrucciones p a ra los controles.
In stru ccio n es del botón Nuevo. PREFIJOS PARA LOS NOMBRES DE LOS
Cuando haga clic o pulse la tecla F7 en el botón Nuevo, se visualiza la CONTROLES
siguiente ventana:
1IH Proyectol - Formi (Código)
Si tu lo deseas, puedes hacer uso de los prefijos que se recomiendan
Huevo jt J 1Click
utilizar en los nombres de los controles de Visual Basic, de tal manera que
Private Sub Nuevo C l i c k () T con su nombre se sepa a qué tipo de control te refieres. Por ejemplo, si en
una caja de textos va a ingresar la dirección de una persona, le puedes
1 t "
Ü I1 Q bU D r Observe el nombre del asignar el nombre de txtdireccion. Esto es opcional, incluso si tu lo deseas
Control puedes crear tus propios prefijos para los nombre de los controles en sus
k u j A
aplicaciones.
En esta ventana se tiene que escribir las instrucciones para limpiar el contenido
de las cajas de texto y poder ingresar los datos de otra persona. Control Prefijo
Control Prefijo
Como cada caja de texto tiene un nombre asignado, entonces se tiene que Line lin
Base de datos db
escribir las siguientes instrucciones: fId ListBox 1st
Campo
1 tü P ro ye cto l - Form i (Código] Llnlxl CheckBox chk Menu mnu
ComboBox cbo MsChar ch
1Huevo 1Click t |
Command Button cmd Ole Contaiifeg-; ole
Private Sub Muevo Click () T Command Dialog cdl Option Button opt
Nombre = pic
Data Control dat Picture Box
Fecha =
Dni = DbCombo dbc ProgressBar prg
Domicilio = DbGrid dbg Recordset Ree
Nombre.SetFocus — DbList dbl ScrollBar Horizontal hsb
End Sub Directory ListBox dir Scrollbar Vertical vsb
8 -ill ±J Drive ListBox drv Shape shp
DTPicker dtp SsTab tab
Instrucciones del Botón Salir File ListBox fil Tabla tb
Cuando haga clic o pulse F7 en el botón Salir, se visualiza la siguiente ventana Form frm TextBox txt
donde debe escribir End. Frame fra Timer tmr
Image img UpDown upd
Label lbl

Observe el nombre
del control

P 78 G rupo E d it o r i a l Megabyte G ru po E d it o r ia l Megabyte 79


é S È k VISUAL BASIC como debe ser.. .
ERRORES MAS COMUNES
Si al ejecutar una aplicación se m uestra una ventana de m ensaje
PREGUNTAS DE REPASO N° 02
indicando un error, haga click en el botón aceptar o en el botón Debug
y finalice la aplicación para corregir el error.
1. ¿Cómo se borra un control del formulario?
-« r-v . • _ j |
2. La propiedad Caption sirve para:
j v Compile error: Se espera fin del procedimiento. 3. ¿Con qué propiedad se puede evitar que un control se visualice cuando
Posiblemente, borró End Sub por casualidad al
E xpected E nd Sub se ejecute una aplicación?
escribir las instrucciones del control
4. Para que al ejecutar el formulario ocupe toda la pantalla se usa la
A cepta r jj A yuda propiedad:
5. ¿Cuál es la diferencia entre una etiqueta y una caja de textos?
6. ¿Cuál es el nombre por defecto de un formulario, caja de textos, etiqueta
y botón de comandos?
R un -tim e e rro r '4 24 ‘ :
7. ¿Para qué sirve la propiedad Font?
O b je ct re q u ire d
8. ¿Para qué sirve la propiedad Tooltiptext?
9. ¿Cuál es la diferencia entre la propiedad visible y la propiedad Enabled?
10. ¿Cuántas formas de ejecutar una aplicación conoces?
11. ¿Para qué sirve la propiedad Backcolor?
End J { D e b u g j| Help I 12. ¿Cuántas formas de finalizar una aplicación conoces?
13. ¿Para qué sirve la propiedad Forecolor?
Se req u iere un objeto. 14. Los pasos para desarrollar una aplicación son:
seguramente Ud. se está refiriendo a un control que no existe en el formulario, 15. ¿Cómo se borra un control del formulario?
escribió en forma incorrecta la propiedad del control o a una propiedad le 16. ¿Cómo se puede asignar un color a un botón de comandos?
está asignando un valor incorrecto. 17. ¿Qué utilidad tiene la propiedad Tabindex en las cajas de texto?
18. Para escribir instrucciones dentro de un control se debe:
19. ¿Cuál es el evento por defecto de un formulario, etiqueta, caja de texto
y de un botón de comandos?
20. ¿Cuándo se ejecutan las instrucciones que se encuentran en el evento
Click?

¡CUIDADO!

No pase a los siguientes temas sin responder


¿ G ra b a r los cam bios? SI, NO o C A N C ELA R
Seguramente quiere salir del proyecto actual sin grabarlo. correctamente a esta autoevaluación.

80 G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 81


CAPITULO III
Nombre del Trabajador David Infante
Horas Trabajadas Normales 48
Horas Extras 5
Pago por Hora Normal 10
Pago por Hora Extra 20 ; Calcular

Total por Horas Normales 480


Nuevo
Total por Horas Extras 100
l'XA
Sub □ a v e Incorrecta

Descuento

Total a Aceptar Cancelar

Producto

Precio Unitario

Cantidad Comprada Calce1

Subtotal S/. Nuf

ELEMENTOS D e scu e n to S /. | 0
Se

DE LA TOTAL A PAGAR $/. ===>

PROGRAMACION
I

-- PROCEDIMIENTOS Y FUNCIONES
--------------------------------------------------------------- ;------------------------------

Un procedimiento es un conjunto de instrucciones que se le da a la


computadora para que desarrolle un determinado proceso. A este conjunto
de instrucciones se le asigna un nombre para poder llamarlo o ejecutarlo en
cualquier momento. Toda aplicación en Visual Basic está basada en
procedimientos.

Según la forma como empiezan a ejecutarse los procedimientos se


dividen en dos grupos:

1. Procedimientos conducidos por eventos.


2. Procedimientos generales.

PROCEDIMIENTOS CONDUCIDOS POR EVENTOS

Son procedimientos ligados siempre a un control y a un evento


determinado y que se ejecutan cuando el control reconoce que a ocurrido
dicho evento. También se puede ejecutar cuando es invocado desde cualquier
otro procedimiento. Estos tipos de procedimientos se crean automáticamente
cuando comenzamos a escribir instrucciones para un determinado control.

Por ejemplo el siguiente procedimiento llamado Com m and l Click,


se crea automáticamente cuando hacemos doble click o pulsamos la tecla
F7 en el control COMMAND 1 para escribir las instrucciones
VISUAL BASIC como debe se r... CAPÍTULO III: Elementos de la Programación
Las instrucciones que Ud. escriba en este procedim iento llam ado
P R O C E D IM IE N T O S G EN ER A LES
C o m m an d l_ C lic k se ejecutan cuando se haga CLICK en el control
COM MAND1; es decir cuando ocurra el evento Click en el control
Son los procedimientos que se ejecutan sólo cuando se hace una llamada
Commandl.
explícita a dicho procedimiento. Estos tipos de procedimientos no se crean
automáticamente, por eso también reciben el nombre de procedimientos o
El nombre del procedimiento depende del nombre que Ud. ha asignado al
control en la propiedad ÑAME y del evento elegido. Si Ud., no ha asignado funciones definidos por el usuario.
un nombre al control, entonces Visual Basic utiliza el nombre que le asigna
a cada control en forma automática. Un procedimiento general puede escribirse como procedimiento SUB o
como función FUNCTION. Un procedimiento conducido por un evento
Así como cada control tiene un nombre que en forma automática le asigna siempre es un procedimiento SUB.
Visual Basic, también tiene un evento predeterminado el cual se visualiza
cuando empezamos a escribir las instrucciones para el control. Por ejemplo, Según el lugar de la aplicación donde los podemos llamar, los procedimientos
el evento predeterminado de los botones de comandos (Command) es el generales pueden ser:
evento CLICK y si queremos escribir instrucciones en otro evento, debemos
elegirlo de la lista de eventos. Otros ejemplos:
1. Procedimientos a nivel de formulario.
Prívate Sub Form_Activate() ^ as instrucciones que se escriban 2. Procedimientos a nivel de módulo.
en este procedimiento se ejecuta
EndSub cuando el formulario es activado
Procedimientos a Nivel de Formulario.
Prívate Sub Form Load() Las instrucciones que se escriban en
este procedimiento se ejecuta cuando el Los procedimientos a nivel de formulario son aquellos que se pueden
EndSub formulario es llamado para que quede activado. llamar o ejecutar sólo desde el formulario en el cual han sido creados.

Prívate Sub Textl_Change() Las instrucciones que se escriban en este Procedimientos a Nivel de Módulo.
procedimiento se ejecuta cuando se modifica
EndSub el contenido del control Textl. Los procedimientos a nivel de módulo son procedimientos públicos; es
decir, se pueden llamar o ejecutar desde cualquier formulario de la aplicación.
Prívate Sub Textl_KeyPress(KeyAscii As Integer)
Sintaxis p a ra un procedim ien to:
EndSub [Prívate | Public] [Static] Sub nombre [(listaDeArgs)J
[instrucciones]
Las instrucciones que Ud. escriba en este procedimiento se ejecutan cuando se [Exit Sub]
presiona alguna tecla (escribe) en el control Textl y en la variable KeyAscii se [instrucciones]
almacena el valor de la tecla pulsada. Por ejemplo si pulsa la tecla ENTER se End Sub
almacena el valor 13, ESC almacena el 27, la letra A el valor 65, etc. Esto quiere
decir que almacena el valor ASCII.

86 G rupo E d it o r i a l Megabyte ^ G rupo E d it o r i a l Megabyte 87 « S i


VISUAL BASIC como debe ser. CAPÍTULO III: Elementos de la Programación
Un procedimiento tiene las siguientes partes: 1. T IP O
1. FO RM A S DE A C CESO : Es opcional e indica el tipo de dato del argumento que se pasa a la función.
P rívate Indica que se puede tener acceso al procedimiento sólo desde 2. EX PR ESIÓ N
los procedimientos del formulario donde se ha declarado o Es el valor que retorna la función.
creado(Procedimiento a nivel de Formulario).
Public Indica que se puede tener acceso al procedimiento desde Las palabras clave Exit Function producen la salida inmediata de la Función.
La ejecución del programa continúa con la instrucción siguiente a la
todos los procedimientos de cualquier formulario que forma
parte de la aplicación (procedimiento a nivel de módulo). instrucción que ha llamado a la Función.

Statíc Indica que se conservan los valores de las variables locales MUY IMPORTANTE
del procedimiento entre una llamada al procedimiento y otra. * La diferencia principal entre una Función y un Procedimiento es que un
El atributo Static no afecta a las variables declaradas fuera procedimiento nunca devuelve un valor mientras que la función si puede
de Sub, ni siquiera cuando se usa en el procedimiento. devolver un valor y además una función puede usarse en una expresión.
2. N O M B R E : * Al conjunto de procedimientos, funciones, declaraciones de variables
Nombre del procedimiento que se utiliza para poder llamarlo o ejecutarlo. y constantes se le llama M ÓD ULO . Un módulo puede ser:
3. LISTA DE A R G U M EN TO S (LISTAD EARGS):
Módulo de formulario, contiene todos los procedimientos a nivel de
Lista de variables que almacenan los valores que se pasan al procedimiento
formulario los cuales se graban en un archivo con la extensión *.Frm.
cuando es llamado. Cuando se pasan varios valores se utilizan variables
Módulo estándar, contiene todos los procedimientos y declaraciones a
múltiples y se separan con comas. También se llaman parámetros.
nivel de módulo, se graban en un archivo con la extensión *.Bas.
4. IN ST R U C C IO N E S
Cualquier grupo de instrucciones que se va a ejecutar dentro del cueipo PARÁMETROS POR REFERENCIA.
del procedimiento. Permite que el valor de un parámetro pueda cambiarse en el cuerpo
de la función o procedimiento.
Las palabras claves E x it S ub producen la salida inm ediata del
Para pasar un parámetro por Referencia debe estar sin paréntesis.
procedimiento. La ejecución del programa continúa con la instrucción
siguiente a la instrucción que ha llamado al procedimiento. La palabra ByRef (Opcional), indica que el parámetro se pasa por
referencia. ByRef es el modo predeterminado en Visual Basic.
Sintaxis p a ra una F unción:
[Public|Private][Static]Function nombre [(listaDeArgs)][As tipo]
PARÁMETROS POR VALOR.
[instrucciones] Permite que el valor de un parámetro no pueda cambiarse en el cuerpo de
[nombre = expresión] la función o procedimiento. Para pasar un parámetro por Valor debe estar
[Exit Function] entre paréntesis. La palabra By Val (Opcional). Indica que el argumento se
(instrucciones] pasa por valor.
[nombre = expresión] Ejemplo:
End Function Raíz (Num), D if
Además de lo que contiene un procedimiento, una Función tiene las siguientes En la llamada a la función Raíz, el parámetro Num es pasado como por
partes: Valor y el parámetro Dif es pasado por Referencia.
' 88 G rupo E d it o r i a l M e g a b y t e ^ l i l i l í G ru po E d it o r ia l Megabyte 89
^ÉÍÍÍÉÉ^ VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación < ^ ¡ ¡ ¡ ||
Ejemplo: Para crear un procedimiento llamado cambio, escriba la siguiente
CREACIÓN DE PROCEDIMIENTOS A NIVEL DE FORMULARIO instrucción y luego pulse la tecla ENTER.

Existen 2 formas para crear este tipo de procedimientos: SUB CAMBIO


I ra . F orm a.
Active la ventana de código o instrucciones del formulario o de cualquier NOTA:
control haciendo doble click en él o pulsando la tecla F7, luego elija la opción Para crear o activar la ventana de declaración de un formulario, haga doble
Tools (herramientas) de la Barra de Menú y luego ADD PROCEDURE click en cualquier parte libre del formulario o pulse la tecla F7. Luego, de la
(Agregar Procedimiento). Se visualiza la siguiente ventana: lista de objetos elija GENERAL y de la lista de eventos DECLARACIONES.

Agregar procedimiento
m
LLAMAR A PROCEDIMIENTOS
Nombre: j | A cepta r
Para llamar o ejecutar procedimientos sólo se necesita escribir el nombre
Tipo
Cancelar- del procedimiento con los argumentos o parámetros si es necesario y
(* Procedim iento C Propiedad
opcionalmente puede utilizar la instrucción CALL.
Función í~ E vento

La sintaxis para llamar o ejecutar un procedimientos es:


Alcance

(* Público
; [Cali] nombre [listaargumentos]
f~ Todas las varia bles locales son está ticas

La instrucción CALL es opcional, si Ud. la utiliza para llamar o ejecutar


procedimientos que necesitan argumentos o parámetros, estos deben estar
Una vez que Ud. llene los datos de esta ventana con la información entre paréntesis. Por ejemplo la siguiente instrucción llama al procedimiento
correcta del procedimiento que desea crear, haga click en el botón Aceptar IMPRIME utilizando la instrucción CALL y le pasa 2 argumentos.
para que se muestre la plantilla del procedimiento y empezar a escribir las
Cali imprime("Hola",3)
instrucciones que se deben ejecutar cuando el usuario llame al procedimiento.
La siguiente instrucción llama al procedimiento IMPRIME sin utilizar la
instrucción CALL y le pasa 2 argumentos.
2da. F orm a.
Active la ventana de código o instrucciones del formulario o de cualquier Imprime "Hola",3
control haciendo doble click en él o pulsando la tecla F7, luego ubique el
cursor después de cualquier instrucción E N D SU B y escriba la palabra NOTA:
SUB seguida del nombre del procedimiento que desea crear o la palabra Para pasar una matriz completa a un procedimiento, use el nombre de
FUNCTION y el nombre de la función y despues pulse la tecla ENTER. la matriz seguida de paréntesis vacíos.

90 G rupo E d it o r i a l Mega b y te G rupo E d it o r i a l Megabyte 91 m m


o
S VISUAL BASIC como debe s e r.. . CAPÍTULO III: Elementos de la Programación %

CONSTANTES VARIABLES
Una variable es un elemento con un nombre determinado que contiene
Es un elemento con un nombre determinado que mantiene un valor
un valor en forma temporal hasta que la aplicación finalice. El valor puede
constante durante el desarrollo de todo el programa el cual no se puede
variar en cualquier momento de la ejecución de la aplicación. Una variable,
cambiar. La constantes se definen con la instrucción CONST. Por ejemplo: según el lugar de la aplicación donde se desea utilizarla puede ser:
1. V ariables a nivel de procedim iento.
CONST Saludo = ’’Buenos Dias” -Si una variable se declara a nivel de procedimiento, significa que conserva su
valor (se reconoce) sólo dentro del procedimiento donde ha sido declarado.
Define la constante SALUDO que tendrá el texto Buenos Días durante 2. V ariables a nivel de F orm ulario.
la ejecución del programa. Esto quiere decir que si se desea utilizar el texto Si una variable se declara a nivel de formulario, significa que conserva su
puede utilizar sólo la constante Saludo. Así, la siguiente instrucción muestra valor (se reconoce) en cualquier procedimiento del formulario donde ha
el texto Buenos Días en el control Label 1:
sido declarada.
3. V ariables a nivel de M ódulo.
Label 1 = Saludo
Si una variable se declara a nivel de módulo, significa que conserva su
valor (se reconoce) en cualquier procedimiento de cualquier formulario
La siguiente instrucciones define la constante IGV con el valor 18. de la aplicación.
La sintaxis básica para declarar una variable es:
Const IGV = 18 Am bito Nom bre As Tipo
1) A M B IT O :
Si durante el desarrollo del programa escribimos por ejemplo IGV = 16 para El ámbito indica en qué lugar de la aplicación desea utilizar la variable y
cambiar de valor a la constante IGV, se visualiza un mensaje de error. puede ser una de las siguientes palabras claves: Dim, Static, Prívate o Public.
Dim : Se puede utilizar a nivel de procedimiento y a nivel de formulario.
M icro so ft V is u a l B asic n Si se declara una variable a nivel de procedimiento con la palabra
DIM, Visual Basic reinicializa (borra su contenido) la variable
Error de compilación: cada vez que ejecuta el procedimiento.
Static : Se utiliza sólo a nivel de procedimiento. Cuando una variable se
Asignación a la constante no permitida
declara con la palabra STATIC, Visual Basic no reinicializa la
variable cada vez que se ejecuta el procedimiento, sólo lo hace la
Aceptar Ayuda primera vez. Esto quiere decir que la variable conserva su valor
entre una llamada al procedimiento y otra.
Prívate: Se utiliza sólo a nivel de módulo e indica que la variable es privada;
NOTA: es decir, sólo va a ser reconocida dentro del módulo donde ha
La definición de constantes puede empezar con las palabras Public o Private. sido declara.
Para que sean públicas o privadas. Por defecto son Privada. Public : Se utiliza sólo a nivel de módulo e indica que la variable es publica;
es decir, va a ser reconocida en toda la aplicación.

92 G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 93 ^ j |¡ J ||


é S B ts VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación
Una variable definida de tipo Integer, acepta números enteros comprendidos
2) N O M B R E :
entre -32768 hasta 32767. Una variable definida de tipo Single, Double y
Es el nombre que utilizamos para referirnos a la variable en la aplicación.
Currency acepta números sin decimales y con decimales.
El nombre de una variable tiene que comenzar con una letra y puede
MUY IMPORTANTE:
tener como máximo 255 caracteres. Los caracteres pueden ser letras,
Si a una variable la declaramos de un tipo determinado y le asignamos un
dígitos, el carácter subrayado y los caracteres de declaración del tipo de
valor incorrecto se visualiza un error.
la variable (% ,& ,!,#,@ y $). El nombre de una variable no puede ser una
palabra reservada porque tienen un significado especial para Visual Basic. Ejemplo N°l:
3) T IP O : Dim A as Integer
Es opcional y determina qué clase de valores puede almacenar una variable. A = 50000
Si no indica el tipo no utilice la palabra AS, en este caso la variable se Se define la variable A de tipo Integer cuyo valor máximo debe ser 32767,
considera de tipo Variant. pero le asignamos el valor 50000. En este caso se visualiza un error de
overflow (desbordamiento):
TIPOS DE V A RIABLES
TIPO DESCRIPCIÓN CARÁCTER RANGO E r r o r '6 ' e n tie m p o d e e je c u c ió n :

Byte I Byte 0a255 D e s b o r d a m ie n to


Boolean Lógico T rue o False
(2 Bytes)
Integer Entero % -32768 a 32767
(2 bytes)
Long Entero Largo & -2147483648 a 2147483647 j T e r m in a r j 1 D e p u ra r j| Ayuda |
(4 bytes)
Single Real Simple i -3.40E+38 a 3.40E+38
Precisión (4 bytes.) E jem plo N° 2:
Double Real Doble # -1.79D+308 a 1.79D+308 Dim A as Integer
Precisión (8 bytes) A = "Juan"
Currency Número con Punto @ -9.22E+14 a 9.22E+14 Se define la variable A de tipo Integer cuyo valor máximo debe ser 32767,
Decimal Fijo (8 bytes) pero le asignamos un valor tipo Texto. En este caso se visualiza un error de
String Cadena de Caracteres $ 0 a 65500 car. Type Mismatch (tipo):
(4 b.+ l b./car. hasta 64K.)
Date 8 bytes 01/01/100 a 31/12/9999

Variant es el tipo de datos al que se convierten todas las variables si no se E r r o r '1 3 ' e n tie m p o d e e je c u c ió n :

declaran explícitamente de algún tipo. El tipo de datos Variant no tiene carácter N o c o in c id e n lo s tip o s
de declaración de tipo.
Los tipos de datos Byte, Integer, Long, Single, Double y Currency indican
que una variable va a almacenar sólo números, pero cada uno de estos tipos
tiene sus características. Por ejemplo:
Una variable definida de tipo Byte acepta números enteros (sin decimales), D e p u ra r Ayuda

pero sólo entre 0 y 255.

94 G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 95


é S K S k VISUAL BASIC como debe ser.. . <§§ CAPÍTULO III: Elementos de la Programación
¿CÓMODECLARAR VARIABLES ANIVELDEPROCEDIMIENTO? A PL IC A C IÓ N D ESA R RO LLA D A N° 06
Las variables a nivel de procedim iento se declaran dentro de cada Esta aplicación muestra la diferencia entre una variable declarada con DIM
procedimiento que Ud., crea en su aplicación. Su utilización más común es y STATIC dentro de un procedimiento.
intervenir en cálculos intermedios. Por ejemplo:
PASO N° 01: Dibujar los controles.
Prívate Sub CommandI_Click() o Ci ■ - lo l *l
Dim NOM As String * 30
Dim E As Integer
Static C As Integer
In cre m e n ta ia va ria b le À y B
Otras instrucciones

End Sub
PASO N° 02: Asignar las propiedades.
C3 51 - _ la l x |
¿CÓMO DECLARAR VARIABLES ANIVEL DE FORMULARIO?
L a b e ll Label2
Debe activar la ventana de declaración de variables. Para ello se debe hacer
doble click en cualquier control o pulsar la tecla <F7>, lueg'o de la lista de Labei3 Label4

controles elegir GENERAL y de la lista de eventos elegir DECLARACIONES.


Com m andl )|
Se puede visualizar ¡! -

t
i 1"m P ro je c t-! * Ft»m 1 (C od e) -J C lx jl
CONTROL
E T IQ U E T A S (L A B E L )
C A P T IO N A U T O S IZ E BO R D ER STY L E
|(General) j(Declarations) I(General) Vj |(Declarations) jrj j
Labe11 Valor de A True 0 - None
; [O p tio n E x p l i c i t ¿ : 0 - None
Label2 Valor de B True
Label3 En Blanco False 1 - Fixed Single
Label4 En Blanco False 1 - Fixed Single
BO TO N ES DE COMANDOS
iS
ë
j
j rJds jJ J
± iT CONTROL CAPTION
Coinmandl Incrementa la variable A y B
Si la ventana tiene la instrucción OPTION EXPLICIT, significa que se generará
un error por cada variable que utilice y no declare: V ariable not Defined Caption del Formulario: Diferencia entre Dim y Static.
(Variable no definida). PASO N° 03: Escribir las instrucciones.
Si Ud., desea puede borrar la instrucción Option Explicit y también si esta * Sólo se programa en el commandl. Observará que al hacer click en
ventana no la tiene, la puede escribir. este botón la variable A no se incrementa porque está declarada
con DIM, que perm ite reinicializar una variable cada vez que ,v<
¿CÓMO DECLARAR VARIABLES A NIVEL MÓDULO? ejecuta un procedim iento. En el ejem plo, el procedim iento es:
De la opción Proyecto de la barra de menú elija la opción Adicionar Módulo. COMMAND 1_CLICK().
Private Sub Commandl_Click()
^ P ro y e c lo l - M odule! (C ódigo) H liiE [| Dim A Ai Integer
Este tipo de variables normal­ Static B Ai Integer
|(G eneral) jrJ j(D eclaraciones)
mente se utilizan cuando nuestra A = A + /

1 ^ aplicación tiene varios for­ B =B +1


mularios. Labe!3 = A
Label4 = B
5 _1_U
E nd Sub

í j j |¡ |l § ^ 96 G ru po E d it o r ia l Megabyte G ru po E d it o r ia l Megabyte 97
 VISUAL BASIC como debe ser. CAPÍTULO III: Elementos de la Programación
EJEMPLO DEUNA VARIABLEANIVELDEPROCEDIMIENTO
« .V A R I A B L E S A N IV E L D E P R O C E D IM IE N T O □ S E OPERADORES ARITMETICOS:
Suma \ División Entera
Resta MOD Resto de una División
P R O CEDIM IENTO " A " PROCEDIM IENTO "B "
Multiplicación A Exponenciación
División 0 Orden de Operación

Dibuje una etiqueta y dos botones de comandos y asígneles su propiedad


Ejemplos:
Caption como se muestra en la aplicación. OPERACION RESULTADO
INSTRU CCION DEL COMMAND1 INSTRU CCIONES DEL COMMAND2 5+13 18
Prívate Sub Commandl_Click() Prívate Sub Command2_Click() 8 0 -4 76
Dim N As Integer Labell = N 42
7 *6
N =5 End Sub 13/2 6.5
Labell = N
N = 10 13 \ 2 6
End Sub 13 MOD 2 1
4 A3 64
Al hacer click en el Commandl (Procedimiento "A"), se visualiza el valor 5, 12+14/2 19
y luego la variable N toma el valor 10, pero al hacer click en el Command2 13
(12 +14)/2
(Procedimiento "B") se visualiza el error "VARIABLE NO DEFINIDA" o
no se muestra nada. Esto depende si existe o no la instrucción Option Explicit.
Como puede observar, el valor de la variable N no es reconocida en el ORDEN DE EJECUCIÓN DE LOS OPERADORES (Prioridad)
segundo procedimiento (Command2) porque fue declarada dentro del Cuando hay varios operadores en una misma expresión se resuelven en un
procedimiento commandl (Nivel de Procedimiento).
orden predeterminado según la prioridad de los operadores. Así:
EJEMPLO DE UNAVARIABLEANIVELDE FORMULARIO. 1. Exponenciación (A)
Para que la variable N sea reconocida en ambos procedimientos, debe de 2. Negación (-)
declararla a Nivel de F orm ulario. 3. Multiplicación y división (*, /)
1 m P ro y e c to l - F orm i (C ódigo) . n lx l 4. División de enteros (\)
5. Resto de una División (Mod)
|(General) j(Declaraciones) -*■
]
6. Suma y Resta (+, -)
D im N As In te g e r ~H
NOTA:
J j
ü j U Si los operadores de una expresión tienen la misma prioridad se ejecutan de izquierda
Las instrucciones de los botones de comandos serán: a derecha.
Los paréntesis cambian el orden de operación porque toda expresión que tenga
Prívate Sub Command] _Clíck() Prívate Sub Command2_Clíck( ) paréntesis se ejecuta primero y si existen varios paréntesis primero se ejecutan los
N =5 Labell = N
Labell = N paréntesis más internos. Por ejemplo, si las notas de un alumno son 12 y 14, la
End Sub
N = 10 siguiente expresión: 12 + 14/2 dará como promedio 19 y la expresión (12 + 14) / 2
End Sub dará como promedio 13.
KA 98
G rupo E d it o r i a l Megabyte-^ G rupo E d it o r i a l Megabyte 99
^ CAPÍTULO III: Elementos de la Programación
éÊ Ê È k' VISUAL BASIC como debe ser...
APLICACIÓN DESARROLLADA N° 07
COMENTARIOS Ingresar el nombre de un trabajador, las horas normales que ha trabajado,
las horas extras, el pago por cada hora normal y extra. Al hacer un Click en
Los comentarios son textos que se pueden utilizar para documentar nuestra el botón Calcular se debe calcular y mostrar el total por las horas normales,
aplicación perm itiendo de esta m anera ir explicando cóm o estam os el total por las horas extras, el sub total, un descuento del 10% del sub total
desarrollando la aplicación y cómo funciona. Este texto explicativo y y el total que se le debe pagar.
aclaratorio es ignorado por la computadora cuando nuestra aplicación se
1üi_ PAGOS
ejecuta.
Nombre del Ttabajadoi David Infante
Los comentarios se pueden colocar dentro de un programa utilizando la Horas T rabajadas Normales 48

instrucción REM o el Apostrofe ( ‘). Horas Extras 5


Pago por Hora Normal 10
La instrucción REM normalmente se utiliza al inicio de una línea y en forma
Pago por Hora Extra 20 Calculai
independiente. Por ejemplo:

GO
Total por Horas Normales

O
Nuevo
Rem Se limpian las cajas de texto.
Total por Horas Extras I I 00
Textl=""
Text2 = "" Sub Total |580 Salir

Text3 = "" Descuento (10%) |58

T otal a Pagar j522


Si queremos colocar el comentario en la misma línea de instrucción, se debe
separar con dos punto (:). Ejemplo:
PASO N° 1: D ib u jar los controles.
Textl = "" : Rem Limpia la caja de textos Form! I- I□ I *1
L a b e ll ¡T e x tl
El apostrofe se puede utilizar al inicio de una línea en forma independiente o
L a b e l2 ( i e xt2
al final de una línea de instrucción. Por ejemplo:
L a b e l3 |T e x t3
1. Com m andl
L a b e l4 |T ext4
‘El valor de A se incrementa en 1
L a b e l5 |T ext5
A=A+ 1 C om m a n d 2
LabeIS L a b e ll 1

2 . L a b e l7 L a b e ll 2 C om m a n d 3

A = A + 1 ‘El valor de A se incrementa en 1 LabeIS L a b e ll 3

LabeIS L a b e ll 4
NOTA:
L a b e ll 0 L a b e ll 5
Cuando se insertan los comentarios se visualizan con un color diferente al
de las instrucciones, este color es normalmente el verde.

100 G rupo E d it o r i a l Megabyte G ru po E d it o r ia l Megabyte


101 Wm
CAPÍTULO III: Elementos de la Programación ^¡¡
^Ü ÍÉÉÉ> VISUAL BASIC como debe s e r ...
IN ST R U C C IO N E S D EL BO TÓ N C A LC U LA R .
PASO N° 2: A signar las propiedades a los controles.
Para escribir las instrucciones del botón CALCULAR, debe hacer doble
Asigne la propiedad Caption al formulario, a los botones de comandos y a la click o pulsar la tecla F7 en dicho botón. Si se encuentra dentro de la ventana
etiqueta número 1 hasta la etiqueta número 10 como se muestra en la de código seleccione de la lista de controles el control COMMAND1 y de
aplicación a desarrollar. la lista de eventos el evento Click. Se visualizará la siguiente ventana:
A las cajas de texto y las etiquetas desde la número 11 hasta la número 15
no les borre su contenido por se van a limpiar al ejecutar la aplicación. ^ ó íx ]
H Práyeclol - Foiml (Código)
PASO N° 3: E sc rib ir las instrucciones p a ra los controles. C om m andl — Click -
Para que al ejecutar la aplicación se limpie el contenido de las cajas de texto Option Explicit _____ at.
y de las etiquetas N° 11 hasta la N° 15 y además se ubique el cursor en la Private Sub Coimiandl_Clicli: ()
----
caja de textos N° 1 para empezar a ingresar los datos, se debe programar en I
I
el evento ACTIVATE del formulario. Para ello ingrese a la ventana de código End Sub ....... »I
o instrucciones haciendo doble click en el formulario o pulse la tecla F7 y de i
m <l I JÜ
la lista de controles seleccione el control FORM y de la lista de eventos
seleccione el evento ACTIVATE. Se visualizará la siguiente ventana:
MUY IMPORTANTE:
| m Proyectol - Formi (Código) Si al ingresar a la ventana de código visualiza la instrucciones O ption
Explicit, significa que debe definir todas las variable que va a utilizar. Si
|Form jftctiuate jrj
Ud., no desea definir las variables puede borrar la instrucción Option Explicit.
Private S u b Form Activate () Sj| Las instrucciones del botón CALCULAR (Com m andl) son:
End S ub Prívate Sub Commandl_Click()
Dim HNT, HET, PHN, PHE, THN, THE, ST, DES, TP As Single
Const DESCUENTO = 10
S_ÜJ HNT = Val(Text2) ‘Horas Normales Trabajadas
HET = Val(Text3) ‘Horas Extras Trabajadas
Las instrucciones que debe escribir en esta ventana son: PHN = Val(Text4) ‘Pago por Hora Normal
Prívate Sub Form_Activate() PHE = Val(Text5) ‘Pago por Hora Extra
Textl = "" THN = HNT * PHN ‘Total por Horas Normales
Text2 = "" THE = HET * PHE ‘Total por Horas Extras
Textl = "" ST = THN + THE ‘Sub Tota!
Text4 = "" DES = S T * DESCUENTO /1 0 0 ‘Descuento
TextS = "" TP = ST - DES ‘Total a Pagar
L abelll = Labelll = THN
Labell2 = "" Labell2 = THE
Labell3 = "" Labell3 = ST
Labell4 = "" Labell4 = DES
Labell5 = "" LabellS = TP
Textl. SetFocus E nd Sub
E nd Sub

Ü > IÜ Ü ^ G r u p o E d i t o r i a l Megabyte 103


102 G rupo E d it o r i a l Megabyte <^ ¡g¡¡
#• VISUAL BASIC como debe ser...
NOTA: MUY IMPORTANTE:
En esta aplicación se utiliza la función VAL, que permite convertir un
Se puede desarrollar la aplicación de tal manera que los resultados se
valor tipo carácter a un valor tipo numérico. Para realizar operacio­
nes aritméticas con datos almacenados en cajas de texto o etiquetas, visualicen al ingresar los datos sin necesidad de hacer click en el botón
se recomienda usar la función VAL para convertirlos a numéricos. CA LCU LA R . Para ello debe llam ar a las instrucciones del botón
CALCULAR (procedimiento Command2_Click) desde el evento CHANGE
OTRA FORMA DE PROGRAMAREN EL BOTÓN CALCULAR de cada una de las cajas de textos.
En el ejemplo anterior se definen y usan variables y constantes para obtener
los resultados deseados, pero también se pueden obtener los resultados sin rm Provecto! - Form! [Código)
n|x|
utilizarlas.Por eso dentro del botón CALCULAR (Com m andl) también se
puede programar lo siguiente: Tenti J IChange T
.................................... ........zq
Prívate Sub Commandl_Click()
Labelll = VaI(Text2) * Val(Text4)
Private S u b Textl_Change()
Labell2 = Val(Text3) * Val(Text5) Commandl_C 1ickj
Labell3 = Val(Labelll) + Val(Labell2) End S ub
Labell4 = Val(Labell3) * 1 0 /1 0 0
LabelI5 = Val(Labell3) - Val(Labell4) Private S u b Text2_Change()
End Sub Command1_C1ick
End S u b
INSTRUCCIONES DEL BOTÓN NUEVO.
Cada vez que haga click en el botón NUEVO, se deben limpiar los datos Private S u b Text3_Change()
ingresados y los resultados y ubicar el cursor en textl para ingresar los Command1_Click
datos de un nuevo trabajador. End S u b
Como las instrucciones que realizan este proceso se encuentran en el
procedimiento Form_Activate ya no es necesario volverlas a escribir en el Private S u b Text4_Change()
botón NUEVO, sólo debe llamar al procedimiento desde este botón. Command1_C1ick
La instrucción que debe escribir en el botón NUEVO es: End S u b

Form Actívate Private S ub Text5_Change()


Command1_Click
End S ub
| t í Proyectol - Formi (Código) |_|n|x|
|com m and2 jrJ | Click

P r i v a t e S u b Command2 C l i c k () De esta manera ya no necesita el botón CALCULAR porque los resultados


F o rm A c t i v a t e
se visualizan cuando se ingresa o modifica cualquier dato. Ud., puede borrar
(End S u b —1
el botón CALCULAR porque las instrucciones que contiene permanecen

jf1 en el formulario cuando el botón se borra.


lililí

¿ m m
Megabyte 105
G rupo E d it o r i a l M egabyte^ G rupo E d it o r i a l
--- ----------------------------- ^ ^
VISUAL BASIC como debe s e r.. . CAPITULO III: Elementos de la Programación
En la condición se pueden utilizar los OPERADORES DE RELACIÓN Y
IF - THEN - ELSE LÓGICOS:
Permite ejecutar una o más instrucciones dependiendo de la respuesta = Igual o Diferente
(verdad o Falso) de una condición dada. > Mayor Que AND Y Lógico
< Menor Que OR O Lógico
Su sintaxis es: >= Mayor o Igual NOT Negación
<= Menor o Igual Like Comparar Cadenas
1.- If condición Then
Instrucción(es) Por ejemplo:
(Se ejecutan cuando es Verdad)
Else Se desea mostrar en la etiqueta N° 1 (Labell) el mensaje APROBADO O
Instrucción(es) DESAPROBADO, dependiendo de su promedio almacenado en la variable PROM.
(Se ejecutan cuando es Falso) La instrucción será:
Endlf
If Prom >= 10.5 Then
2.- If condición Then
Label 1 = “APROBADO"
Instrucción(es)
Else
(Se ejecutan cuando es Verdad)
Endlf Labell = “DESAPROBADO”
End If

3.- If condición Then La instrucciones anterior también se puede desarrollar de la siguiente manera:
Instrucción(es)
(Se ejecutan cuando es Verdad) If Prom>= 10.5 Then Label 1=“APROBADO” Else Label 1=“DESAPROBADO”
Elself condición then
Instrucción(es) La instrucción If se debe utilizar con Else normalmente cuando sólo existen
(Se ejecutan cuando es Verdad)
Else dos alternativas como por ejemplo para saber si un alumno está aprobado o
Instrucción(es) no, para saber si una persona es mayor de edad o no.
(Se ejecutan cuando es Falso)
End If Cuando existe sólo una o a partir de tres alternativas es mejor utilizar una
instrucción If sin Else para cada alternativa.
4.- If condición Then Instrucción else Instrucción

Esta ultima sintaxis se pude utilizar normalmente cuando en cada caso de va Por ejemplo:
a ejecutar sólo una instrucción, si son dos o más instrucciones se deben Se ha ingresado en Text3 el turno de un trabajador y de acuerdo al turno se
separar por dos puntos, pero es recomendable utilizar la lera, o 2da. sintaxis le da un pago que debe visualizarse en Labeló.
en estos casos.
Mañana (M) ==> 300, Tarde (T) ==> 500 y Noche (N) ==> 700

106 G E
ru po d it o r ia l
G rupo E d it o r i a l Megabyte 107 <lf¡§¡íj§|^
VISUAL BASIC como debe se r... CAPITULO III: Elementos de la Programación
Las instrucciones serían:
MSGBOX
Dim PAGO As Integer
I f Text3 = "M" Then M uestra una ventana de m ensaje en el centro de la pantalla. Tiene
PAGO = 300 dos sintaxis:
End I f
I f Text3 = "T" Then
PAGO = 500 1.- Cuando no se espera la respuesta del usuario:
End I f Msgbox “Mensaje”,Valor,’’Título”
I f Text3 = "N" Then
PAGO = 700 2.- Cuando se espera la respuesta del usuario:
End I f
Varíable^Msgbox (“Mensaje”,Valor,’’Título”)
Label6 = PAGO

Tam bién se puede d e sa rro lla r de la siguiente m anera: Variable: Almacena un valor tipo entero de acuerdo a la respuesta del usuario.
Mensaje: Es el mensaje que se desea mostrar.
Dim PAGO As Integer Valor : Indica qué botones van a acompañar al mensaje.
I f Text3 = "M" Then PAGO = 300
Título : Es el título que desea que tenga la ventana.
I f Text3 = "T" Then PAGO = 500
I f Text3 = "N" Then PAGO = 700 Valor C onstante Botón que se visualiza
Labeló = PAGO 0 vbOKOnly Ok (Aceptar)

1 vbOKCancel Ok y Cancelar
La sintaxis N” 03 (con Elself) también se puede utilizar en estos casos:
2 vbAbortRetrylgnore Anular,Reintentar e Ignorar
Dim PAGO As Integer
3 vbYesNoCancel Sí, No y Cancelar
I f Text3 = "M" Then
PAGO = 300 4 vbYesNo Sí y No
E lself Text3 = "T" Then vbRetryCancel Reintentar y Cancelar
5
PAGO = 500
E lself Text3 = "N" Then 16 vbCritical Icono de Error Crítico
PAGO = 700 32 vbQuestion Icono de Inten-ogación
End I f
48 vbExclamation Icono de Exclamación
Labeló = PAGO
64 vbínformation Icono de Información

0 vbDefaultButtonl Primer botón por defecto

256 vbDefaultButton2 Segundo botón por defecto

512 vbDefaultButton3 Tercer botón por defecto

108 G rupo E d it o r i a l Megabyte^ G ru po E d it o r ia l Megabyte 109


O
VISUAL BASIC corno debe s er.. . CAPÍTULO III: Elementos de la Programación ^ ¡¡Í^ ||P
ICONOS QUE SE PUEDEN MOSTRAR E jem plo:
1.
Dim R as Integer
16
O Icono de Error Crítico R=M sgbox(“Está seguro de salir”,3 6 ,”CUIDADO")

Muestra la siguiente ventana:

V Icono de Interrogación 32
1

Icono de Exclamación 48 Está seguro de salir

Sí No

Icono de Información 64
Si el usuario hace un click en el botón SI, la variable R toma el
valor 6 y si hace un click en el botón NO la variable R toma el valor 7.
NOTA :
Para visualizar los botones con los iconos se debe sumar los valores
de cada uno de ellos. Por ejemplo para visualizar los botones Sí y No 2.
y el icono de interrogación el valor será: 4 + 32 o simplemente 36. Dim T as Integer
También se puede usar las constantes en lugar de los valores. T -M sgB ox("C lave Incorrecta",1 + 16, "Acceso D enegado")
Si queremos que el mensaje ocupe varias líneas, se debe usar Chr(13)
al fin a l de cada línea. Muestra la siguiente ventana:

ü l
Valores que reto rn a:

Valor
1
C o n sta n te
vbOK
R espuesta del U su í
OK (Aceptar)
O Clave Incorrecta

2 vbCancel Aceptar ; Cancelar


Cancelar
3 vbAbort Anular
4 vbRetry Reintentar Si el usuario hace un click en el botón ACEPTAR, la variable T
5 vblgnore Ignorar toma el valor 1 y si hace un click en el botón CANCELAR la variable T
6 vbYes Si toma el valor 2.
7 vbNo No

G rupo E d it o r i a l Megabyte G rupo E d it o r i a l Megabyte 111


O B E Sb VISUAL BASIC como debe ser.. . CAPÍTULO III: Elementos de la Programación
APLICACIÓN DESARROLLADA N° 08 Para desarrollar la característica N ° 01 se debe:

D e sa rro lla r nuevam ente la siguiente aplicación (N ° 04) A) El c o m m a n d l (N u evo alum no) debe tener en la propiedad Enabled
el v a lo r False.
B) Se debe program ar en el evento Change de T e x t l:

I f Trim(text 1)=’” ’ Then


Command 1,enabled=False
E lse
Commandl.enabled= True
E n d lf
NOTA:
1. C o m o p u e d e observar, p a ra re ferirse a la p r o p ie d a d de un control
den tro de un p ro g ra m a se d eb e re sp eta r la sig u ie n te sin taxis:
Nombre del Control.Propiedad = Valor
2. La fu n c ió n Trim q u ita los espacios en b lanco que se en cuentran a la
d erech a d e u n a ca ja d e te xto s o d e un a cadena.
3. I f T r im (te x tl) = ” ” T hen.- P reg u n ta r si una caja de texto s está v a ­
cía (entre las co m illa s no d eb e h a b e r esp a cio s en blanco). Si la
caja d e texto s está vacía el b o tón N u e vo A lu m n o se d e sa ctiv a y
en ca so c o n tra rio (si hay a lg o escrito ) se activa.

Para desarrollar la característica N °02 de esta aplicación se debe:


C on las siguientes características:

A ) Program ar en el evento Keypress de cada una de las cajas de texto.


1. A l e je cu ta r la a p lic a c ió n el b o tó n Nuevo Alum no debe estar Por ejem plo haga doble C lic k en T e x tl y de la lista de eventos e lija el
desactivado. S ólo se debe a ctiva r cuando com ience a ingresar el evento Keypress. V isualizará:
nom bre del alum no.
Prívate Sub Iext 1 KeyPress(KeyAscii As Integer)
2. Cuando el usuario ingrese un cam po y pulse E N T E R , el cursor
debe pasar autom áticam ente al siguiente campo. End Sub
3. A l hacer un c lic k en el botón fin a liz a r se debe m ostrar un mensaje
de advertencia. Las instrucciones de este botón se deben ejecutar Entonces se debe pro gram a r lo siguiente:

tam bién cuando el usuario pulse < E S C > .


Prívate Sub T extl_K eyP ress(K eyA scii A s Integer)
Ifk e y a sc ii = 13 then
P a r a d e s a r r o lla r la a p lic a c ió n d e b e d ib u ja r to d o s lo s c o n tr o le s y Text2.set focus
a sig n a rle s las m ism a s p ro p ie d a d e s d e la a p lic a c ió n N u 02, p e ro a d em á s: End If
E nd Sub

G ru po E d it o r ia l Megabyte 113
CAPÍTULO III: Elementos de la Programación

L a v a ria b le KeyAscii alm acena el v a lo r de la tecla que se ha pulsado.


NOTA:
S i a l e je c u ta r la a p lic a c ió n se v is u a liz a u n e r r o r in d ic a n d o q u e la
E je m p lo : E N T E R = 13, ESC = 27, etc.
variable R no está definida, sig n ifica que ex iste la instrucción O PTIO N
Si el usuario ha pulsado la tecla E N T E R (1 3 ) el cursor pasa en fo rm a
E X P L IC IT en la v e n ta n a d e d e c la ra c ió n d e va ria b les, e n to n c e s debe
autom ática a la segunda caja de Texto.
b o r r a r e sta in s tr u c c ió n o d e c la r a r la v a r ia b le R d e tip o I n te g e r a l
En las siguientes cajas de texto tam bién se tiene que program ar casi lo
mismo:
in icio d e las in stru ccio n es: Dim R as Integer

Prívate Sub Text2_KeyPress( KeyAscii As Integer) L a program ación del evento C lic k del C om m and 1 (N uevo A lu m n o s ) es:
Ifkeyascii = 13 then Prívate Sub C om m andl_Click()
Text3.setfocus Textl =
End If Text2 =
End Sub
Text3 =
Prívate Sub Text3_KeyPress(KeyAscii As Integer) Text4 = “ ”
Ifkeyascii = 13 then Text5 =
Text4.setfocus Textl. SetFocus
End I f Com mandl .Enabled = False
End Sub
End Sub
Prívate Sub Text4_KeyPress(KeyAscii As Integer)
Ifkeyascii = 13 then A P L IC A C IÓ N PRO PUESTA N2 07:
Text5.setfocus D esarrolle la siguiente a plica ció n de la m e jo r manera posible.
End I f
E nd Sub
«. D atos del A lum no
Prívate Sub Text5_KeyPress(KeyAscii As Integer)
Ifkeyascii = 1 3 then
Alumno
Commandl.setfocus
E n d lf Especialidad
Otro Alumno
End Sub
Ciclo
C uando el usuario te rm ine de ingresar los datos (pulse E N T E R en Text5), el Salir
cursor se ubica en el b otón N ue vo A lu m n o . Turno

Aula
Para desa rrollar la característica N ° 03 de esta a plica ció n se debe p rogram ar
en el evento C lic k del C om m and2 (F in a liz a r) lo siguiente:
IChiclayo, 1G de Agosto de 1998
Prívate Sub Command2_Click()
R = MsgBox( “ESTÁ SEGURO DE SALIR ” , 36, “CUIDADO ” )
IfR = 6 Then IMPORTANTE:
End
Ud. ta m b ié n d e b e f o r m u la r s e n u e v a s a p lic a c io n e s o in te r c a m b ia r
E nd I f
End Sub a p lic a c io n e s p ro p u e sta s en tre su s c o m p a ñ ero s y d esa rro lla rla s con la
fin a lid a d d e fo r ta le c e r su s c o n o cim ien to s.

¿m m . 114 115
G ru po E d it o r ia l M eg a b y te^ G ru po E d it o r ia l Megabyte
O
CAPÍTULO III: Elementos de la Programación
CONSISTENCIA DE DATOS PASO N° 2 ESCRIBIR LAS INSTRUCCIONES
P rim ero debe de e scrib ir las siguientes funciones:
La consistencia de datos consiste en co n tro la r que el usuario ingreso sólo
los datos correctos que necesita el program a, por ejem plo, si se trata de Función M ayuscula
ingresar la nota de un alum no se debe c o n tro la r que sólo se ingrese un Que in d ic a si la letra ingresada está en m ayúscula.
n úm ero entre 0 y 20. La sig u ie n te a p lic a c ió n m uestra un e je m p lo de
consistencia de datos. Función M inuscula
Que in d ica si la letra ingresada está en m inúscula.
APLICACIÓN DESARROLLADA N° 09
Función Num ero
E l siguiente program a perm ite ingresar los apellidos y nom bre, fecha de
ingreso, turno y p rom edio de un alum no. Este program a debe tener las In dica si se ha ingresado un núm ero.
siguientes características: Función Especial
1. El p rim e r carácter de cada n om bre o a p e llid o debe c o n ve rtirse en In d ica si a ingresado una vocal con tild e , la letra ñ o Ñ o pulsó E N T E R , la
m ayúscula y el resto en m inúsculas.
Barra Espaciadora o de Retroceso (BackSpace).
2. Se debe v e rific a r que la fecha ingresada este correcta.
3. En el turno sólo se debe aceptar las letras M , T y N. Las funciones reciben en la variable V el v a lo r de la tecla que el usuario a
4. E l p rom edio debe ser un núm ero entre 0 y 20. pulsado desde la variab le K E Y A S C II del p ro ced im ien to KeyPress de la
5. Los botones N uevo y S a lir deben perm anecer desactivados hasta que Cajas de Textos y devuelven un va lo r verdadero (T R U E ) o falso (F A LS E ).
se ingresen todos los datos correctos.

L o valores con sus respectivos caracteres son:


1 IN G R E S O D E D A T O S B H æ M - I n lx l

1 A = 65 a = 97 á = 255 0 = 48
.apellidos y N om bres ¡¡
B = 66 b = 98 é = 233 1 =49
F e c h a de Ingreso ----- C = 67 c = 99 f = 237 2 = 50
ó = 243
Turno [M -T -N ] |‘ .... N uevo ú = 250
ñ = 241
Prom edio [U a 20] S_alir
Z = 90Z z = 122 Ñ = 209 9 = 57

La tecla E N T E R tiene el v a lo r 13.


PASO N° 1 D IB U JA R LOS CO N TRO LES La tecla de Retroceso (B A C K S P A C E ) tiene el va lo r 8 .
La tecla de Escape (ESC ) tiene el va lo r 27.
I ¡ü» F o rm i ■ ■ ■ ■ ■ - Ini L a B arra Espaciadora tiene el v a lo r 32.
L a b e ll |Text1 F unction M ayuscula(v) F unction M inuscula(v)
Label2
— l f (v> —65 A n d v< = 90) Then V (v> = 97 A n d v < ~ 1 2 2 )
|T e xt2
M ayuscula = True Tlien
LabeIS C om m andl p¡se ' M inuscula = True
1Text3
M ayuscula = False Else
LabeW j T ext4 Command2 £nc¡¡f Minuscula = False
E nd Function E nd If
E nd Function

116 G r u po E d it o r ia l G ru po E d it o r ia l Megabyte 117 « X


^ Íliy¡|> VISUAL BASIC como debe se r... CAPÍTULO III: Elementos de la Programación
Function numero(v) Instrucciones del Procedim iento T e x tl_ K e y p re s s : V erifican que los apellidos
I fv < 48 Or v > 57 Then y nom bres se ingresen correctam ente y que se co nvierte la p rim e ra letra a
numero = False m ayúscula y el resto a m inúscula.
Else
numero = True Private Sub Textl_KeyPress(KeyAscii As Integer)
End I f Static anteriorespacio As Boolean
End Function ¡f KeyAscii = 13 Then
Text2.SetFocus
Function Especial(v) End I f
I f v - 13 Or v -3 2 Or v=8 Or v=225 Or v=233 Or v=237 Or v=243 Or I f KeyAscii = 32 Then
v=250 Or v=241 Or v = 209 Then anteriorespacio = True
Especial = True Else
Else I f May usculaf KeyAscii) O r Minuscula( KeyAscii) Or
Especial - False Especial(KeyAscii) Then
End I f IfTrim (Textl) = "" Or anteriorespacio Then
End Function Rem Convierte a Mayuscula.
KeyAscii = Asc(UCase(Chr( KeyAscii)))
Instrucciones de la Función INGRESADO: Verifican si todos los datos han sido Else
Rem Convierte a Minuscula
ingresados correctamente para poder activar o no los botones Nuevo y Salir. KeyAscii = Asc(LCase(Chr( KeyAscii)))
End I f
Function ingresados() anteriorespacio = False
IfT rim (T extl) <> ""A n d lsDate(Text2) A nd Trim(Text3) <> "" Else
A nd Trim(Text4) o "" Then MsgBox "Debe ingresar sólo letras", 16, "Cuidado"
Command 1.Enabled = True KeyAscii = 0 ‘Ignora el carácter digitado
Command2. Enabled = True Commandl .Enabled = False
Else Command2. Enabled = False
Command ¡.Enabled = False End I f
Command2. Enabled = False End I f
E nd ¡f End Sub
End Function
Instrucciones del P rocedim iento T ext2_LosF ocus: V e rifica n que la fecha
Instrucciones del P rocedim iento F o rm _ A c tiv a te : Para que al ejecutar ingresada esté correcta. Esto ocurre en el m om ento que ubica el cursor en
el program a se lim p ie el contenido de las cajas de texto, se desactiven los otra caja de texto u o tro co ntrol.
botones de com andos N uevo y S a lir y el cursor se ubique en te x tl para
em pezar a ingresar los datos. Prívate Sub Text2_LostFocus()
I f lsDate(Text2) Tiren
Private Sub Form_Activate() ingresados
Text¡ - "" Else
Text2 = "" MsgBox "Debe ingresar una fecha correcta", 16, "Cuidado"
Text3 - "" Text2.SelStart = 0
Text4 = "" Text2.SelLength - Len(Text2)
Command 1.Enabled = False Text2 = Text2.Se/Text
Command2. Enabled - False Text2.SetFocus
Textl. Set Focus End I f
End Sub End Sub

lililí! ^ G r u po E d it o r ia l Megabyte lililí^ G r u po E d it o r ia l Megabyte 119


|S ¡ ¡ Í |> VISUAL BASIC como debe ser.. . CAPÍTULO III: Elementos de la Programación
Instrucciones del Procedim iento Text2_KeyPress: Ubican el cursor en Text3 Instrucciones del P rocedim iento T ext4_C hange: V e rific a n que el pro m e dio
cuando pulse la tecla Enter siempre y cuando la fecha ingresada esté correcta. ingresado se encuentre entre 0 y 20 .
Prívate Sub Text2_KeyPress(KeyAscii As Integer) Prívate Sub Text4_Change()
IfK eyA scii = 13 Then
l f Val(Text4) < 0 Or Val(Text4) > 20 Then
Text3. Set Focus
M sgBox "El promedio debe estar entre 0 y 20", 16, "Error"
E nd I f
Text4.SelStart = 0
End Sub Text4.SelLength = Len(Text4)
Text4 = Text4.SelText
Instrucciones del Procedimiento Text3_Keypress: Verifican que en el tumo sólo se Text4.SetFocus
ingresen las letras M , T o N y si se ingresan en minúscula las convierte en mayúscula. Commandl.Enabled - False
Prívate Sub Text3_KeyPress(KeyAscii As Integer) Command2.Enabled = False
Dim Letra A i String * 1 Else
IfK eyA scii = 13 Then ingresados
Text4.SetFocus E n d lf
Else End Sub
Letra = UCase(Chr( KeyAscii))
lfL etra = "M" Or L e tra -"T " Or Letra= "N" Or KeyAscii=8 Then L a in s tru c c ió n de los siguientes proced im ien to s llam an al p ro ce d im ie n to
Rem Convierte la letra ingresada a Mayúsculas. IN G R E S A D O S cada vez que se m o d ific a algún dato para v e rific a r si todos
KeyAscii = A sc( UCasef Chr(KeyAscii))) los datos han sido ingresado correctam ente para poder a ctiva r o no los
Else
M sgBox "Debe ingresar sólo las letras M ,T o N", 16, "Error" botones N uevo y Salir.
Rem Ignora el caracter ingresado.
KeyAscii = 0 Prívate Sub Textl_Change()
ingresados
Command 1.Enabled = False
End Sub
Command!. Enabled = False
E nd I f
Prívate Sub Text3_Change()
E nd I f
ingresados
E nd Sub
End Sub
In s tru c c io n e s d el P ro c e d im ie n to T e xt4 _K e yp re s s : C o n tro la n que en el In stru cció n de botón N uevo. L la m a al p ro ce d im ie n to F o rm _ A c tiv a te para
p ro m e d io sólo se ingresen números. em pezar a ingresar los datos de un nuevo alum no.
Prívate Sub Text4_KeyPress(KeyAscii As Integer)
I f numerof KeyAscii) Or KeyAscii = 8 Or KeyAscii = 13 Then Prívate Sub Com m andl_Click()
ingresados Form_Activate
Else End Sub
M sgBox "Debe ingresar sólo números", 64, "Cuidado"
Instrucciones del p ro c e d im ie n to F o rm _ U n lo a d : Piden una respuesta de
KeyAscii - 0
Com m and! .Enabled = False c o n firm a c ió n para fin a liz a r el program a.
C om m and!.Enabled = False
End I f Prívate Sub Form_Unload(Cancel As Integer)
End Sub Dim resp A í Integer
resp = MsgBox("Está seguro de salir", 36, "Cuidado")
EXPLICACION BREVE DE LAS FUNCIONES UTILIZADAS (Ver Pgs. 116,122 y 130): I f resp = 7 Then
C H R : Convierte un valor ASCII a su respectivo carácter. Rem Respondió SI
UCASE: Convierte un texto a mayúscula. Cancel = True
LCASE: Convierte un texto a minúscula. End I f
TRIM : Quita los espacios en blanco de la derecha de un texto. End Sub
^ |¡¡¡¡¡f^ 120 G ru po E d it o r ia l Megabyte <111111 ¡ § j |f |j |^ G ru po E d it o r ia l Megabyte 121
é S /S k í VISUAL BASIC como debe ser. . . .= <3§ CAPÍTULO III: Elementos de la Programación ^ ¡¡111^
NOTA:
INPUTBOX L a variab le y el mensaje es lo ú nico o b lig a to rio que se debe u tiliz a r en la
fu n c ió n In pu tb ox. Por eje m p lo, la instrucción:
M uestra una caja con un mensaje y perm ite además que el usuario pueda
ingresar un dato el cual se considera de tip o S tring. Su sintaxis es: P=InputBox("INGRESE EL PRECIO DE VENTA")
M ue stra la siguiente caja de ingreso:
Variable=InputBox(mensaje,título, valor pred, c o lu m n a jila )

Variable. Proyecto! E
Es la variab le que alm acena e l v a lo r que se ingresa en la caja. IN G R E S E E L PR EC IO D E V E N T A
M ensaje.
Es el mensaje que se desea m ostrar cuando se pid a el dato a ingresar. C a n c e la r
Título.
Es el títu lo de la caja.
Valor predeterminado
Es el v a lo r que se m uestra en fo rm a a utom ática para ser ingresado.
Columna
Es un va lo r que in d ic a la p o sició n h o rizo n ta l del fo rm u la rio donde se desea Si no desea u tiliz a r alguno de los otros parám etros interm edios, debe u tiliz a r
que se muestre la caja. siem pre las comas.
Fila Por e je m p lo, en la siguiente in stru cció n no se in d ic a el p re cio que debe sa lir
Es un va lo r que in d ica la posición ve rtica l d el fo rm u la rio donde se desea que en fo rm a autom ática.
se m uestre la caja.
P = IN P U T B O X (''IN G R E S E E L P R E C IO D E V E N T A ","V E N T A D E D O L A R E S " , ,2 0 0 0 ,1 0 0 0 )

Por ejem plo, la siguiente instrucción: M ue stra la siguiente caja de ingreso:

P = IN P U T B O X ("IN G R E S E E L P R E C IO D E V E N T A "," V E N T A D E VENTA DE DOLARES


D O L A R E S ",3 .3 5 ,2 0 0 0 ,1 0 0 0 ) IN G R E S E E L P R E C IO D E V E N T A Aceptar |
P erm ite ingresar el precio de venta del dólar, m ostrando en fo rm a autom ática
C a n c e la r
el p re cio de 3.35 para cada d ó la r en la p osición h o riz o n ta l 2000 y vertica l
1000. M uestra la siguiente caja de ingreso:

IV E N TA DE D O LA R ES E3
I N G R E S E E L P R E C ID D E V E N T A A c e p ta r

C a n c e la r S i no desea u tiliz a r los ú ltim o s parám etros, no es necesario que u tilic e las
comas.
Por e jem plo, en la siguiente in stru cció n no se in d ic a el p re cio que debe sa lir
| EJES en fo rm a autom ática ni la u bicació n de la caja en el fo rm u la rio .

122 Megabyte .2 3
G ru po E d it o r ia l G r u po E d it o r ia l Megabyte
^ Ü Í l> VISUAL BASIC como debe se r.. .
CAPÍTULO III: Elementos de la Programación
P=INPUTBOX("INGRESE EL PRECIO DE VENTA","VENTA DE DOLARES")
CONTADORES Y ACUMULADORES
M uestra la m ism a caja de ingreso a nte rio r en el centro de la p antalla, p o r­ U n contador es una variab le num érica que perm ite contar algún evento
que no se in d ic ó la posición: que ocurre durante la ejecución de un program a. Su sintaxis es:

VA R IA B LE = VA R IA B LE + IN C REM EN TO .
Si desea e scrib ir el mensaje en varias líneas, u tilic e C h r(1 3 ) (R e to rn o de
E l increm ento norm alm ente es uno. Por eje m p lo: A = A + 1.
C arro) o C h r(lO ) (A vance de línea) o las dos ju n ta s al fin a l de cada línea. Cada vez que la com putadora ejecuta esta instru cció n , el va lo r de la variable
A se increm enta en 1.
Por ejem plo, en la siguiente in stru cció n se m uestra el mensaje “ ingrese el
p re cio de venta” acom pañado de la fecha y hora actual (escríbalo es una U n acumulador llam ad o tam bién sum ador es una variab le que perm ite ir
sola línea). alm acenando el contenido que va tom ando o tra variable. Su sintaxis es:

VARIABLE1 = VARIABLE1 + VARIABLE2


P=InputBox("INGRESE EL PRECIO DE VENTA"+Chr(13)+" AL ■ +
Str(Now),"VENTA DE DOLARES") E jem plo: R = R + F.
C ada vez que la c o m p u ta d o ra e je c u ta e sta in stru c c ió n en la v a ria b le
R a cu m u la el va lo r d e la variable F.
VENTA DE DOLARES
INGRESE EL PRECIO DE VENTA
S L a v a r ia b le ta m b ié n p u e d e s e r un c o n tr o l c o m o u n a c a ja d e texto s,
e tiq u e ta , etc.
Aceptai E jem p lo : L a b el5 = Val(Label5) + Val(Text3)
AL 29/04/9 9 6:49:00 PM C ada vez que se e je c u ta esta in stru c c ió n en L a b e lS a c u m u la el va lo r
Cancela d e Text3.
L a siguiente a plicación m uestra un e je m p lo de contadores y acum uladores.

APLICACION DESARROLLADA N° 10
Esta a plicación cuenta el núm ero de depósitos y retiros realizados por un
cliente, además alm acena el to ta l de las m ontos tanto de retiros com o de
depósitos efectuados in clu ye n d o el saldo actual
NOTA:
I «*.. B a n c o " E l A m i g o " M B - i n i R ii

C lie n te jT it o R a m ir e z V á s q u e z Ok 1
L a fu n c ió n N O W , p e rm ite o btener la fecha y hora actual y la fu n c ió n STR,
c o n vie rte un dato a tip o carácter. M o n t o d e M o v im ie n t o

15 0

D e p ó s it o j R e tir o _ l

C a n t id a d T o ta l

D e p ó s it o |2 |1 3 5 0 1i N u e v o C l ie n t e l j
R e tir o h 150
S a lir
SALD O A C TU A L |1300

124 G ru po E d it o r ia l Megabyte <á lp l | G r u po E d it o r ia l Megabyte 125


<i>

i® ! » VISUAL BASIC como debe ser. CAPITULO III: Elementos de la Programación


PASO N° 1: Dibujar los controles. INSTRUCCIONES D E L BOTÓN OK.
Private Sub Commandl_Click()
Textl.Locked = True
L a b e ll |T e x t1 Text2.Locked = False
L a b e l2 Commandl.Visible = False
j f e x f2
Command2.Enabled = True
Command3.Enabled = True
C om m and2 j C o m rn a n d 3 Rem La siguiente instrucción debe ir en una sola línea.
L a b e l3 L a b e l4
saldo=Val (InputBox ("Monto de Apertura "+Chr (13) +Chr(13) +"
La cuenta se apertura con cualquier monto ", "Nueva de
L a b e l5 L a b e l7 L a b e l9
C o rn m a n d 4 Cuenta", 350))
L a b e l6 L a b e (8 L a b e ll 0 Labell2 = saldo
Com m and5
td = saldo
L a b e ll 1 L a b e ll 2
cd = 1
Label7 = cd
PASO N° 2: Asignar las propiedades. Label9 = td
Asigne la propiedad Caption al formulario, etiquetas y botones de comandos Text2.SetFocus
End Sub
como se muestra en la aplicación planteada.
INSTRUCCIONES D E L BO TÓ N DEPÓSITO.
Priva te Sub Command2_Click()
PASO N° 3: Escribir las instrucciones para los controles. Dim deposito As Integer
D E C LA R A R LAS VA R IAB LES A N IV E L DE FO R M U LA R IO EN: General deposito = Val(Text2)
td = td + deposito 'Total de depósitos
Declaraciones. cd = cd + 1 'Cantidad de depósitos
D im td, cd, tr, cr, saldo As Integer Label7 = cd
INSTRUCCIONES DELPR O C ED IM IEN TO F O R M _A C IW A TE. Label9 = td
saldo = Val(Labell2)
Permiten que al ejecutar la aplicación se lim pien las cajas de texto y las etiquetas, Labell2 = saldo + deposito
además muestran el botón O K y desactivan los botones DEPOSITO y RETIRO y no End Sub
se permite el ingreso del monto.
INSTRUCCIONES D E L BO TÓ N RETIRO.
Prívate Sub Form_Activate() Private Sub Command3_Click()
Textl = Dim retiro As Integer
Texl2 = retiro = Val(Text2)
Label7 = saldo = Val(Labell2)
Label8 = If saldo < retiro Then
MsgBox "La cantidad que desea retirar excede su
Label9 = saldo actual", 64, "Disculpe"
LabelJO = "" Text2 = ""
L abell2 = "" Text2.SetFocus
C om m andl .Visible = True El se
Command2. Enabled = False tr = tr + retiro 'Total de Retiros
Commands. Enabled = False cr = cr + 1 'Cantidad de Retiros
Text I.Locked - False Label8 = cr
Text2.Locked = True Label10 = tr
Label12 = saldo - retiro
Textl.SetFocus
End If
End Sub
End Sub
127
G ru po E d it o r ia l M egabyte^ G ru po E d it o r ia l Megabyte
CAPÍTULO III: Elementos de la Programación ^
INSTRUCCIONES D E L BOTÓN NUEVO C L IE N T E . INSTRUCCIONES D E L BOTÓN RETIRO.
Llama al procedimiento Form_Activate y reinicializa las variables con cero (0).
Prívate Sub Command.3_Click()
P r í v a t e S u b C o m m a n d 4 _ C l i c k () lfV a l(L abell2) < Val(Text2) Then
F o rm _ A cti va t e MsgBox "La cantidad que desea retirar excede su saldo
td = 0 'T o ta l D e p ó s ito s actual", 64, "Disculpe"
c d = 0 'C a n tid a d d e D e p ó s ito s Text2 = ""
t r = 0 'T o ta l de R e tiro s Text2.SetFocus
c r = 0 'C a n tid a d de R e tir o s Else
End Sub
Label8 = Val(Label8) + 1
Label 10 = Val(LabellO) + Val(Text2)
Label 12 = Val(Labell2) - Val(Text2)
End I f
Este program a tam bién se puede d e sa rrollar sin usar variables. End Sub

INSTRUCCIONES D E L BO TÓ N OK.
INSTRUCCIONES D E L BOTÓN NUEVO CLIENTE.
Private Sub Commandl_Click()
Textl.Locked = True Private Sub Command4_Click()
Text2.Locked = False
Commandl.Visible = False Forrn_Activate
Command2.Enabled = True End Sub
Command3.Enabled = True
Rem La siguiente instrucción debe ir en una sola línea.
Label12=InputBox("Monto de Apertura "+Chr(13)+Chr(13) +" INSTRUCCIONES D I I J ’R O C I.D IM IKN TO F O R M A C TIV A T E .
La cuenta se apertura con cualquier monto ", "Nueva de
Cuenta ", 350) Private Sub Form_Activate()
Label 7 = 1 Textl =
Label 9 = Label12
Text2 = ""
Text2.SetFocus
End Sub Label7 = ""
Label8 =
Label9 = ""
INSTRUCCIONES D E L BO TÓ N DEPÓSITO. LabellO = ""
Labell2 = ""
Prívate Sub Command2_Click() Commandl .Visible = True
Label7 = Val(Label7) + 1 Command2.Enabled = False
Label9 = Val(Label9) + Val(Text2) Command3.Enabled = False
Label12 = Val(Labell2) + Val(Text2) Textl.Locked = False
E nd Sub Text2.Locked = True
Textl.SetFocus
End Sub

G ru p o E d ito r ia l Megabyte 129


A * VISUAL BASIC como debe s e r .. . CAPÍTULO III: Elementos de la Programación
DESARROLLAR LAS SIGUIENTES APLICACIONES:
N 04: Ingresar el nom bre del producto, p re cio a nte rio r y p re cio actual,
IIF
luego ca lcu la r el alza en soles y el alza en porcentaje. Es una fu n c ió n que devuelve uno de dos valores dados dependiendo de una
condición.
NOTA:
E l alza en porcentaje es ig u a l al alza en Soles p o r 100 / Precio A n te rio r.
Su sintaxis es:
n - I n i x|
VARIABLE = IIF (CONDICION, VALOR 1, VALOR2)
Producto
f.............
Precio Anterior Si el resultado de la c o n d ic ió n es verdad (si), la variab le tom a el V A L O R 1 y
1.....................
Precio Actual si el resultado de la c o n d ic ió n es falso (no), la variable tom a el V A L O R 2 .
1........... ...
T am bién se puede u tiliz a r un co n tro l com o una caja de textos o etiqueta para
A lza en Soles
r............
alm acenar cualquiera de los valores. Si los valores son de tip o carácter
Alza en Porcentaje
r ~ .......
deben ir entre co m illa s.
N u evo Producto Calcular Salir I
Por ejem plo: En la siguiente instru cció n , si el v a lo r de la variab le E D A D es
m ayor o ig u a l a 18, se alm acena en la variab le O B S el mensaje M A Y O R
N 05: Ingresar el n om bre del profesor, e l núm ero de horas norm ales que D E E D A D , y si el v a lo r de la variable E D A D es m enor que 18 se almacena
ha trabajado y el n úm ero de horas extras, luego se debe c a lc u la r el to ta l que en la variab le O B S el mensaje M E N O R D E E D A D .
se le debe pagar p o r el N ° de horas norm ales, el to ta l p o r horas extras y el
to ta l a pagar.
Si ha trabajo más de 48 horas su pago p o r hora es de S/. 8.00 soles y SI. 7.00 OBS = IIf(E D A D >= 18, "M AYOR DE EDAD", "MENOR DE EDAD")
en caso co ntrario. P o r hora e xtra S/. 9.50.
Otro ejemplo:

Nombre del Profesor I ,a siguiente instrucción:


Horas Trabajadas
__________ Calcular
Horas Extras I f pro >= 10.5 Then
Label8 = "Aprobado"
Pago por Hora
Otro Else
Total por Hs. Normales Label8 = "Desaprobado"
Total por Hs.Extras Salir End I f

T o ta l a P a g a r ===>
También se puede e s c rib ir de la siguiente manera:

P rog ra m a d orJu a n J o s é Castañeda León


I ,abel8 = IIF(pro >= 10.5,’’Aprobado” ,’’Desaprobado” )

G ru po E d it o r ia l Megahyte<^ ||| § | G ru po E d it o r ia l Megabyte » , w m


<?
iÉ iÉ jÉ É ^ VISUAL BASIC como debe se r.. . < 5 ¡§ CAPITULO III: Elementos de la Programación
SELECT - CASE APLICACIÓN DESARROLLADA N° 11
Perm ite ejecutar una o más instrucciones dependiendo del v a lo r de f=i L’i i : i f . i «i a í:iíT!TTT37íT! WÊSÊÊÉÊÊIM - In | x |
una va riab le, de una expresión. Puede reem plazar a varias instrucciones
IF-THEN. Producto

Precio Unitario
Su sintaxis es:
Cantidad Comprada I Calcular

Subtotal S/. 0 Nue vo


Select Case VAR IABLE O EXPRESIÓN
Case CASO N° 1 Descuento X 0 .................. «i;:!. 1
Salir
Instrucción(es) Descuento S/. 0
Case CASO N °2
Instrucción(es)
0
Case CASO N°3 T O T A L A P A G A R S/. ===>
Instrucción(es) 1
Case C A S O N °4
Instrucción(es)

CARACTERÍSTICAS:

Case CASO n Se debe ingresar el n om bre de un producto, su p re cio u n ita rio y la c a n ti­
Instrucción(es) dad com prada de d ich o producto, luego se debe ca lcu la r y v is u a liz a r el
Case Else subtotal, el descuento en porcentaje, el descuento en soles y el to ta l a pagar,
Instrucción(es) lil descuento en porcentaje se depende d el subtotal, de acuerdo a la s igu ien ­
End Select te tabla:

NOTA: SUBTOTAL DESCUENTO %


Case Else e s o p c io n a l y la s in s tr u c c io n e s q u e c o n tie n e se e je c u ta n
100 ó 101 2%
c u a n d o n o se c u m p le n in g u n o d e lo s casos.
de 101.1 a 200 4%
S i s e d e s e a e s c r ib ir in s tr u c c io n e s en la s m ism a lín e a d e l C ase, se de 200.1 a 500 6%
d e b e n se p a r a r p o r d o s p u n to (:). U sa n d o d o s p u n to s se p u e d e n e scrib ir a partir de 500 10%
d o s o m á s in stru c c io n e s en u n a so la línea.
NOTA:
Los casos pueden escribirse de la siguiente manera: lista aplicación m u estra un ejem plo del uso de S E L E C T C A S E , a d em ás
u tiliz a la p r o p i e d a d Ñ A M E d e a lg u n o s c o n tr o le s p a r a p o d e r
Case 1 Case 1 to 10 Case 1,2,3 Case Is >40 m a n e ja r lo s y la f u n c i ó n F O R M A T p a r a a s ig n a r un f o r m a t o d e
Case 2 Case 10 to 20 Case 4,5,6 Case Is <20 visu a liza ció n a lo s datos.

§ j^ 132 G ru po E d it o r ia l Megabyte1 G ru p o E d ito r ia l Megabyte 133


VISUAL BASIC como debe ser.. .
D E S A R R O L L O D E L A A P L I C A C I Ó N ° 11 BO TO N ES DE COMANDOS

P A S O N ° 01: D ib u ja r los controles.


CONTROL CAPTION Tooltiptext
- î n l x l
Coinmandl &Calcular Muestra los totales
Command2 &Nuevo Para ingresar otro producto
L a bell Command3 ScSalir Finaliza la aplicación
||T e xtl

Label2 |T e xt2 El formulario debe tener en C aption: V E N T A D E P R O D U C T O S .


Label3 Com m aridl
| t ext3

Label4 Label8
P A S O N ° 03: E s c rib ir las instrucciones.
Command2
Label5 Label9 IN S T R U C C IO N E S D E L C O M M A N D 1 , donde se u tiliz a la propiedad
Command3 Ñ A M E asignada a las cajas de texto y algunas etiquetas.
LabelG L a b e ll 0

Private Sub Commandl_Click()


L a b e ll 1 Dim ST As Single
Label7
ST = Val(PRECIO) * Val(CANTIDAD)
SUBTOTAL = ST
Select Case ST
Case 100, 101
DESCPOR = 2
P A S O N " 0 2: A s ig n a r las propiedades. Case 101.1 To 200
DESCPOR = 4
E T IQ U E T A S (L A B E L )
Case 200.1 To 500
DESCPOR = 6
Case Is > 500
CONTROL NAME ALIGNMENT CAPTION BORDERSTYLE DESCPOR = 1 0
Labell Labell 0 - Left Producto 0 - None Case El se
Labe12 Label2 0 - Left Precio Uni. 0 - None DESCPOR = 0
Label3 Label3 0 - Left Cantidad Com. 0 - None End Select
DESCSOL = ST * Val(DESCPOR) / 100
Labe14 Label4 0 - Left Subtotal 0 - None 'El Total a Pagar se visualiza con 2 decimales
Label5 Label5 0 - Left Descuento % 0 - None PAGO = Format(ST - Val(DESCSOL) , "###, ##0.00")
Label6 Label6 0 - Left Descuento S/. 0 - None End Sub
Labe17 Label7 0 - Left TOTAL A PAGAR 0 - None
Labe18 SUBTOTAL 1 - Right 0 1 - Fixed S INSTRUCCIONES DEL COMMAND2 (Nuevo).
Label9 DESCPOR 1 - Right 0 1 - Fixed S.
LabellO DESCSOL 1 - Right 0 1 - Fixed S. Prívate Sub Command2__Click ()
Label11 PAGO 1 - Right 0 1 - Fixed s, NOMBPRO = ""
PRECIO = ""
C A JA S D E T E X T O S CANTIDAD = ""
SUBTOTAL = 0
CONTROL NAME TEXT DESCPOR = 0
Textl NOMBPRO En Blanco DESCSOL = 0
Text2 PRECIO En Blanco PAGO = 0
Text3 CANTIDAD En Blanco NOMBPRO.SetFocus
End Sub

sHHIb G ru po E d it o r ia l Megabyte 135 ^ ||||¡|¡^


^ lililí'' VISUAL BASIC como debe se r,.. CAPÍTULO III: Elementos de la Programación
INSTRUCCIONES DEL COMMAND3 (Salir)
APLICACIÓN DESARROLLADA N° 12
Prívate Sub Command3_Click()
Dim H As Integer Se debe ingresar el nom bre del alum no, su nota N ° 1 y su nota N k z, ai
H = MsgBoxf"ESTA SEGURO DE SALIR", 36, "CUIDA­
DO") hacer c lic k en el botón O btener P rom edio se debe visua liza r: el pro m e dio
If H = 6 Then del a lu m n o , una obse rva ción que in d ic a si el a lu m n o está aprobado o
End desaprobado, la ca ntid ad de puntos que le fa lta n para aprobar, si está
End If
desaprobado o los puntos para lleg ar a veinte en caso que esté aprobado.
End Sub
Tam bién se debe v is u a liz a r la N ota C u a lita tiv a del alum no de acuerdo al
promedio:
MUY IMPORTANTE:

S i Ud., d e se a q u e e l resu lta d o ta m b ié n se visu a lic e cu a n d o in grese Entre 0 y 5 Pésimo


o m o d ifiq u e e l p r e c io u n ita rio d e l p r o d u c to o la c a n tid a d co m p ra d a ; Entre 5.1 y 10.4 M alo
e n to n c e s, d e b e p r o g r a m a r en el e v e n to C H A N G E d e c a d a una d e las Entre 10.5 y 14.4 Regular
c a ja s d e texto . Entre 14.5 y 17.4 Bueno
Entre 17.5 y 20 Excelente
L a s in s tr u c c io n e s q u e ca lc u la n y v is u a liza n lo s re su lta d o s q u e e n ­
c u e n tra n en el b o tó n d e c o m a n d o s N ° 1 ( C O M M A N D 1 ), es d e c ir en el
p r o c e d im ie n to lla m a d o C O M M A N D 1 _ C L IC K , e n to n c e s en e l e v e n to Se debe co n tro la r que sólo se ingresen notas entre 0 y 20.
C H A N G E d e ca d a u n a d e la s c a ja s d e te x to (P R E C IO y C A N T ID A D )
s ó lo se d e b e lla m a r a d ic h o p ro c e d im ie n to . « Información Académica B H f lW M W K -Inlxl

A sí: Alumno
1 ..........................

Curso -------- Otro Alumno


INSTRUCCIONES DE TEX T2, CUYO NOMBRE (ÑAME) ES PRECIO. r
Nota N! 01 |o
Obtener Promedio
Prívate Sub PRECIO__Change () 02
Nota N! |o
Commandl_Clíck
End Sub Promedio 1 Finalizar

Observación 1 .....................
INSTRUCCIONES DE TE X T3, CUYO NOMBRE (ÑAME) ES CANTIDAD.
Puntos

Prívate Sub CANTIDAD_Change()


Commandl_Clíck Cualidad
End Sub

G ru po E d it o r ia l Megabyte
D E S A R R O L L O D E L A A P L IC A C IO N BOTONES DE COM ANDOS
P A S O N ° 0 1: D ib u ja r los controles
CONTROL CAPTION TOOLTIPTEXT
Commandl &0tro Alumno Ingresar nuevo alumno
L a b e ll |fr ext1 Command2 Obtener &Promedio Imprime el promedio
Label2 |í e x l2 Com m andl Command3 &Finalizar Finaliza la aplicación
Label3 IT ext3
Command2
LabeM ¡Text4
FORMULARIO
Label5 Label8
Command3 CONTROL CAPTION
LabelG Label9
Forml Información Académica
Label7 L a b e ll 0

L a b e ll 1 Ud. P u e d e c a m b ia r c u a lq u ie r otra p ro p ie d a d p a ra m e jo ra r e l a sp ecto


Lab e ll 2 d e l fo r m u la r io .
P A S O N ° 03: E s c rib ir las instrucciones.

NOTA :
P A S O N ° 0 2 :A s ig n a r las propiedades.
E T IQ U E T A S (L A B E L )
CONTROL CAPTION AUTOSIZE BORDERSTYLE 1. SelStart, S elLength, y SelText son propiedades de las cajas de texto
Labell Alumno True 0 - None
que se usan en el m odo de program ación.
Label2 Curso True 0 - None
Label3 Nota N 201 True 0 - None SelStart:
Labe14 Nota N e02 True 0 - None E sp ecifica la p o sició n de in ic io del bloque de texto seleccionado.
Label5 Promedio True 0 - None SelLength:
Label6 Observación True 0 - None
Label7 Puntos True 0 - None E sp ecifica el núm ero de caracteres seleccionados.
Labe18 En Blanco False 1 - Fixed Single SelText:
Label9 En Blanco False 1 - Fixed Single C ontiene el te xto seleccionado.
Label10 En Blanco False 1 - Fixed Single
Label11 Cualidad True 0 - None
Label12 En Blanco False 1 - Fixed Single 2. Para e scribir comentarios dentro de un program a se u tiliz a las co m illa s
sim ples o apostrofe ( ‘ )*
C A JA S DE T E X T O S
CONTROL TEXT TABINDEX 3. L a fu n c ió n IS N U M E R IC perm ite saber si lo ingresado p o r un usuario
Textl En Blanco 0
Text2 En Blanco 1 se puede considerar de tip o num érico.
Text3 0 2
Text4 0 3

138 G r u po E d it o r ia l Megabyte
W/ VISUAL BASIC como debe ser.
D E S A R R O L L O D E L A A P L IC A C IO N BOTONES DE COMANDOS
P A S O N ° 0 1: D ib u ja r los controles
CONTROL CAPTION TOOLTIPTEXT
n - :
Ingresar nuevo alumno
Commandl &0tro Alumno
L ab e ll IfT e x tl Command2 Obtener &Promedio Imprime el promedio
Label2 |T ext2 Command! Command3 &Finalizar Finaliza la aplicación
Label3 |T ext3
Command2
LabeW | í ext4 FORMULARIO
Label5 LabelS
Command3 CONTROL CAPTION
LabelG LabeIS
Forml Información Académica
Label7 L a b e ll 0

L a b e ll 1 Ud. P u e d e ca m b ia r c u a lq u ie r otra propiedad p a ra m ejo ra r el a sp ecto


L a b e ll 2 d e l fo r m u la r io .
P A S O N ° 0 3: E s c rib ir las instrucciones.

NOTA :
P A S O N ° 0 2 :A s ig n a r las propiedades.
E T IQ U E T A S (L A B E L )
CONTROL CAPTION AUTOSIZE BORDERSTYLE 1. SelStart, SelLength, y SelText son propiedades de las cajas de texto
Labell Alumno True 0 - None
que se usan en el m odo de programación.
Label2 Curso True 0 - None
Labe13 Nota N s01 True 0 - None SelStart:
Label4 Nota N 202 True 0 - None E sp e cifica la p o sició n de in ic io del bloque de texto seleccionado.
Label5 Promedio True 0 - None
SelLength:
Labe16 Observación True 0 - None
Label7 Puntos True 0 - None E sp ecifica el núm ero de caracteres seleccionados.
Labe18 En Blanco False 1 - Fixed Single SelText:
Labe19 En Blanco False 1 - Fixed Single C ontiene el te xto seleccionado.
Label10 En Blanco False 1 - Fixed Single
Label11 Cualidad True 0 - None
Label12 En Blanco False 1 - Fixed Single 2. Para e scrib ir comentarios dentro de un programa se u tiliz a las com illas
sim ples o apostrofe ( ‘ ).
C A J A S DE T E X T O S
CONTROL TEXT TABINDEX 3. L a fu n c ió n IS N U M E R IC perm ite saber si lo ingresado por un usuario
Textl En Blanco 0
Text2 En Blanco 1 se puede considerar de tipo num érico.
Text3 0 2
Text4 0 3

138 G ru p o E d ito r ia l Megabyte <|§¡y§s;


^IIÈ É ^ VISUAL BASIC como debe se r... CAPÍTULO III: Elementos de la Programación
Las siguientes instrucciones perm iten que al fin a liz a r de e s c rib ir la N ota N°
A l empezar a e scrib ir la N ota N° 01, se selecciona el contenido de la
01, se v e rifiq u e que se ha ingresado un v a lo r num érico y entre 0 y 20. Se
caja de texto N ° 03 para que sea reem plazado p o r el v a lo r que se ingresa.
deben e s c rib ir en el evento LostFocus de Text3.
Prívate Sub Text3_LostFocus()
Las siguientes instrucciones se deben e scrib ir en el evento G otFocus
‘Pregunta si no se ha ingresado un valor numérico o
de Text3. Para e llo Haga doble c lic k en Text3 o un solo c lic k y pulse F7, ‘la nota N°1 es menor que 0 ó es mayor que 20
luego en la lista de Eventos seleccione el E vento GotFocus. I f Not IsNumeric(Text3) Or Val(Text3)<0 Or Val(Text3)>20 Then
MsgBox "Sólo números entre 0 y 20", 16, "Cuidado"
Text3.SetFocus
Text3.SelStart = 0
E n d lf
Text3.SelLength - Len(Text3) End Sub
Text3 = Text3 .SelText

Las siguientes instrucciones perm ite n que al fin a liz a r de e s c rib ir la N ota N °
A l fin a liz a r observará lo siguiente:
02, se v e rifiq u e que se ha ingresado un v a lo r num érico y entre 0 y 20. Se
deben e s c rib ir en el evento LostFocus de Text4.
* : P foje ctl - Fòrmi (Code) _ |n[ x|
Prívate Sub Text4_LostFocus{)
Text3 GotFocus ‘Pregunta si no se ha ingresado un valor numérico o
‘la nota N°2 es menor que 0 ó es mayor que 20
Prívate Sub Text3_GotFocus() I f N ot lsNumeric(Text4) Or Val(Text4)<0 Or Val(Text4)>20 Then '
Text3.SelStart = 0 MsgBox "Sólo números entre 0 y 20", 16, "Cuidado"
Text3.SelLength = Len(Text3) Text4.SetFocus
Text3 = Text3.SelText E n d lf
End Sub End Sub

Las siguientes instrucciones perm iten ingresar los datos de un nuevo alumno,
lim p ia n d o las cajas de te xto y las etiquetas y ubicando el cursor en T e x tl
para empezar a ingresar el nom bre del alum no. Se deben e s c rib ir en el
Las siguientes instrucciones p erm ite n que al empezar a e s c rib ir la evento C lic k del C om m and 1.
N ota N ° 02, se selecciona el contenido de la caja de texto N ° 04 para que
Prívate Sub Commandl_Click()
sea reem plazado p o r el v a lo r que se ingresa. Se deben e s c rib ir en el evento Textl = ""
G otFocus de Text4. Text2 = ""
Text3 - 0
Text4 = 0
Private Sub Text4_GotFocus() Label8 = ""
Text4. SelStart ~ 0 Label9 = ""
Text4. SelLength = Len(Text4) LabellO = ""
Text4 = Text4. SelText L abell2 = ""
Textl.SetFocus
End Sub
End Sub

141
m m ™ G ru po E d it o r ia l Megabyte
VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación
Las siguientes instrucciones perm iten m ostrar los resultados del alum no APLICACION PROPUESTA N° 06
(p ro m e d io , observación, etc). Se deben e s c rib ir en el evento C lic k del Se debe ingresar el nom bre y el año de n a cim ie n to de una persona y se
C om m and2. tiene que visua liza r: su edad, una observación que in d ic a si es m ayor o
m enor de edad. Si m enor de edad se debe m ostrar cuántos años le faltan
Prívate Sub Command2_Click()
para ser m ayor de edad y si es m ayor de edad se debe m ostrar hace cuántos
pro = (Val(Text3) + Val(Text4)) / 2
Label8 = pro años es m ayo r de edad. T am bién se debe m ostrar la etapa de la persona
I f pro >= 10.5 Then teniendo en cuenta lo siguiente:
Label9 = "Aprobado(a)" 0 y 12 Niño
LabellO = "Le faltan "+Str(20-pro)+" puntos para tener 20" 13 y 17 Adolescente
Else
Label9 = "Desaprobado(a)" 18 y 30 Joven
LabellO - "Le faltan " + Str(ll-pro)+ " puntos para Aprobar" 31 y 70 Adulto
E n d lf 70... Anciano
Select Case pro fe-Iri fxf
Case OTo 5
L abell2 = "Pésimo" N o m b re jj
Case 5.1 To 10.4 A ñ o d e N a c im ie n to |
L abell2 = "Malo" R e s u lta d o s |
Edad J-
Case 10.5 To 14.4
N uevo
L abell2 = "Regular" □ b s e r v a c ió n j"
Case 14.5 To 17.4 Años S a lir
L abell2 - "Bueno"
E ta p a
Case 17. 5 To 20
L abell2 = "Excelente" r
End Select
End Sub
FUNCIÓN CHOOSE
L a siguiente in stru cció n fin a liz a la a plicación . Se debe e s c rib ir en el evento
C lic k del C om m and3.

Prívate Sub C om m and3jClick()


Su sintaxis es: Variable=CHOOSE(índice,valorl, valor2,valor3..)
R etorna un v a lo r dependiendo de un índice.

La siguiente in s tru c c ió n alm acena en la va riab le N O M B R E , el nom bre del


End día de la semana dependiendo del v a lo r que contiene la variable D IA .
End Sub
NOMBRE=Choose(DIA,” L U N ” ,” M A R ” ,” M IE ” ,” JUE” ,” VIE ” ,” SAB” ,” D O M ” )
CONCATENACION
C oncatenar s ig n ific a u n ir textos y para e llo se puede u tiliz a r el signo + o & . Si D IA tiene el v a lo r 1, devuelve L U N , si día tiene el v a lo r 2, devuelve
E l signo + sólo p e rm ite concatenar valores tip o texto. Si desea concatenar M A R , etc.
valores de d iferen te tip o lo s tiene que c o n v e rtir a texto usando la fu nció n El ín dice debe tener un
S T R si es un núm ero o Cdate si es tip o fecha. v a lo r entre 1 y el núm ero I M i c r o s o f t V is u a l B a s ic
E l signo & tiene la ventaja de poder concatenar datos de d iferen te tipo. de valores devueltos, en Error '94' en tiempo de ejecución :
Por ejem plo, la instrucción: caso co ntrario se muestra El uso de Nuil no es válido
L a b e ll = “ L e fa lta n “ + S tr(20 - p ro ) + “ Puntos para lle g a r a 20”
el mensaje de error:
Se puede reem plazar por:
L a b e ll = “ Le fa lta n “ & 20 - pro & “ puntos para lleg ar a 2 0 ”

MUY IMPORTANTE í Terminar j j Depurar j| Ayuda |

A ntes y después de estos signos debe d e ja r un espacio en blanco.

^ ¡¡¡¡^ ¡^ G ru p o E d it o r ia l M e « a h v t e <^ ^ ^
VISUAL BASIC como debe ser. ,. CAPITULO III: Elementos de la Programación

F U N C IO N E S D E C A D E N A APLICACIÓN DESARROLLADA N° 13
U na cadena es un dato tip o S trin g (carácter); es decir se re fie re a letras o Las siguiente a plicación es un eje m p lo del uso de las funciones de cadena
letras y números, com o p o r ejem plo: el nom bre de una persona, su dirección,
etc. S i usamos al fin a l de la fu n ció n el signo $ devuelve el resultado com o
In g re s e u n a F ra s e ¡E s tu d ia n d o V IS U A L B A S IC
tip o Cadena, de lo c o n tra rio el tip o d evuelto es Variant. L o n g itu d d e la F r a s e
23 r
M u e s tr a
P rim e r C a r á c t e r n :::
R IG H T .- Obtiene de una cadena una cantidad de caracteres empezando por U ltim o C a r á c t e r c N uevo
D e l 2 d o a l G to C a r á c t e r
la derecha. Sintaxis Right(Cadena, N) stu d i
S a lir i
P o s i c i ó n d e la 1 r a le tr a *A'
L E F T .- Obtiene de una cadena una cantidad de caracteres empezando por
M in ú s c u la s e s tu d ia n d o v is u a l b a s ic
la Izquierda. Sintaxis Left(Cadena, N) M a y ú sc u la s E S T U D IA N D O V IS U A L B A SIC
MXD. - Obtiene de una cadena una cantidad de caracteres S ó lo la p r im e ra e n M a y ú s c u la E s t u d i a n d o V is u a l B a s ic
a partir de una determinada posición.
Sintaxis Mid(Cadena, Posición, N) l ’A S O N ° 01: D ib u ja r los controles.
D onde N indica la cantidad de caracteres que se desea obtener.
Labell :|Text1
L E N .- Obtiene la longitud de una cadena, es decir la cantidad de caracteres Label2 Labell 0
que contiene incluyendo los espacios en blanco. LabeB Label! 1
T R IM .- Q uita los espacios en blanco que se encuentran al in ic io y al fin a l de LabeM Labell 2
una cadena. Label5 Labell 3
R T R IM .- Quita los espacios en blanco al fin a l de una cadena. LabeS Label14
L T R IM .- Quita los espacios en blanco que se encuentran al in ic io de una Label? Labell 5
cadena. LabeB Labell 6
U C A S E .- Convierte una cadena a mayúsculas. LabeIS Labell 7
L C A S E .- Convierte una cadena a minúsculas.
P A S O N ° 02: A s ig n a r las propiedades a los controles.
La sintaxis de las funciones anteriores es: Función (Cadena) Ud., está en condiciones de asignar las propiedades a los controles: A signe
la propiedad C ap tion a las etiquetas desde L a b e ll hasta Lab el7 y a los
S T R C O N V : Esta función permite convertir una cadena a 3 formas diferentes: botones de com m andos. T e x tl y las etiquetas desde L ab eI 8 hasta L a b e ll3
STRCONV (Cadena, Valor) deben estar en blanco.
P A S O N ° 03: E s c rib ir las instrucciones para los controles.
El valor indica el tipo de conversión y puede ser:
1. Convierte el texto a mayúscula. Prívate Sub Com m andi JClick()
Prívate Sub Commandl_Click() Textl = ""
2. Convierte el texto a minúscula. LabellO = Len(Trím(Textl )) LabellO =
3. Convierte la primera letra de cada palabra a mayúscula. tM belll = Left(Trím( Textl ), 1) L abelll =
IN S T R : Obtiene un número que indica la posición de una subcadena dentro de Labell2 = Right(Trim(Textl ), 1) Labell2 =
Labell3 = Mid(Trím(Textl), 2, 5) Labell3 =
una cadena. Label 14 =
Labell4 = lnStr(Textl, "a")
IN STR (Valor, Cadena, Subcadena) Labell 5 = LCase(Textl) Labell5 =
Label 16 = UCase(Textl) Label 16 =
E l v a lo r in d ic a la p o sició n de la cadena desde donde se va a buscar la
L a b e l17 =
subcadena. Cadena es el texto donde se desea buscar y Subcadena es el Label 17 = StrConv(Textl, 3)
Textl.SetFocus
te xto que desea buscar. End Sub End Sub

144 - G rupo E d it o r i a l M ee a b v te
como debe ser. CAPÍTULO III: Elementos de la Programación
PASO N ° 03 E s c rib ir las instrucciones.
FUNCIONES TIPO FECHA L a siguiente in stru cció n muestran en la etiqueta N ° 12 la fecha y hora del
NOW.- O btiene la fecha y hora del sistema. sistema. Se deben e s c rib ir en el evento F orm Load.
DATE.- O btiene la fecha del sistema.
Prívate Sub Form_Load()
YEAR.- O btiene el año de una fecha.
L abell2 = "Hoy es " + Str(Now)
MONTH.- O btiene el núm ero mes de una fecha.
End Sub
DAY.- O btiene el día de una fecha.
Las siguientes instrucciones perm iten v is u a liz a r los resultados que se de­
W E E K D A Y .-O b tie n e el núm ero del día de la semana.
sean. Se escriben en el evento C lic k del C o m m a n d l (O K ).
D o m in g o = 1 , Lunes = 2, M artes = 3, etc.
CVDATE.- C on vierte una cadena en un va lo r tip o fecha. Prívate Sub Comm andl_Click()
Dim fecha As Date
ISDATE.-V e rifica si un determ inado va lo r puede considerarse de tip o fecha. Dim ndia, nmes As String *10
La fu n c ió n Format perm ite asignar un fo rm a to a las fechas: Dim día, mes, año, diasemana As Integer
d-m-y 21-8-98 fecha = CVdate(Text2)
dd/mm/yy 21/08/98 dia = Day (fecha)
dd-mmmm-yyyy 21-Ago-1998 mes — Month(fecha)
h:m:s: AM /P M , dd/mm/yy 20:35:20 PM, 21/08/98 año = Year(fecha)
diasemana - WeekDay(fecha)
APLICACION DESARROLLADA N° 14 Label7 - dia
Label8 = mes
Se debe ingresar e l nom bre y la fecha de nacim ie nto de una persona y Label9 - año
visualizarse p o r separado: El día, mes, año, núm ero del día de la semana, la LabellO = diasemana
fecha en letras y la fecha y hora actual. ‘convierte el N° del día de la semana en letras
‘Si desea escribir dos instrucciones en una
‘línea, debe separarlas po r dos puntos
Nombre fjO S E MARIA Select Case diasemana
Fecha de Nacimiento 11 7-1 0-86 Case 1 : ndia = "Domingo"
D ía Ingresado P7 Case 2 : ndia = "Lunes "
Mes Ingresado |ïô O k Case 3 : ndia = "Martes"
Año Ingresado |1986
Salir Case 4 : ndia = "Miércoles”
D ía de la semana
Case 5 : ndia = "Jueves"
V'í&rsr&s-. / Z afe Case 6 : ndia = "Viernes"
iHoy es 1 7 /0 7 /1 998 11:26:58 PM
Case 7 : ndia - "Sábado"
End Select
‘convierte el N° del mes en letras.
PASO N° 01 D ib u ja r los controles. Select Case mes
=asi- 2l Case 1: nmes = "Enero"
Labell jfT extl
Case 2: nmes - "Febrero"
Label2 jText2
Case 3: nmes = "Marzo"
Label3 Label7
Case 4: nmes - "Abril"
Label4 LabeIS
Case 5: nmes = "Mayo"
Label5 Label9 Case 6: nmes = "Junio"
LabeIS L abell O Case 7: nmes - "Julio"
Case 8: nmes = "Agosto"
Case 9: nmes - "Setiembre"
Case 10: nmes = "Octubre"
Case 11: nmes = "Noviembre"
PASO N° 02 A s ig n a r las propiedades. Case 12: nmes = "Diciembre"
A sig ne las propiedades a los controles de tal manera que se visua lice n com o End Select
Labell 1 = ndia+", "+Str(dia)+" de "+nmes+" de "+Str(año)
se m uestra en la a plicación a desarrollar. End Sub

1 4 6 ^ 1 G rupo E d it o r i a l Megahyte 147 « ¡s»


VISUAL BASIC como debe ser.. . CAPÍTULO III: Elementos de la Programación
Valorl
FUNCIÓN DATEADD Es o p c io n a l y perm ite in d ic a r cuál es el p rim e r día de la semana se usará
Perm ite increm entar o d is m in u ir un inte rva lo de tiem po a una fecha. E l
V isual Basic. En fo rm a predeterm inada el p rim e r día de la semana es el
in te rva lo de tiem pos puede ser un num ero de días, semanas, meses, años,
D o m in g o . Los valores que se pueden e s c rib ir son:
etc., retornando una nueva fecha.
Su sintaxis es: D ateA d d ("In te rva lo ",V alo r,F e ch a)
Intervalo Valor Descripción
1 Domingo (predeterminado)
In d ica qué in te rva lo de tie m p o se va a increm entar o d is m in u ir a la fecha.
L o s valores que puede tener son: 2 Lunes
3 Martes
Intervalo Descripción 4 Miércoles
yyyy Año
5 Jueves
q Trimestre
m Mes 6 Viernes
y Día del año 7 Sábado
d Día VaIor2
w Día de la semana Es o p cio n a l y perm ite in d ic a r cuál es la p rim era semana del año que usará
ww Semana
h Hora V isual Basic. En fo rm a predeterm inada es la semana que contiene al p rim ero
n Minuto de enero. L os valores que se pueden e s c rib ir son:
s Segundo V alor D escripción
Valor 1 E m p ie z a c o n la se m a na en la q ue se e n c u e n tra e l 1 de E n e ro
Es la cantidad del in te rv a lo de tie m p o que se va a increm entar o d is m in u ir a (predeterm inado).
una fecha. U n v a lo r p o s itiv o increm enta y un v a lo r n egativo dism inuye. 2 Em pieza con la Ira. semana que tenga al menos 4 días en el nuevo año.
Fecha 3 Empieza con la Ira semana que esté completamente incluida en el nuevo año.
Es la fecha a la cual se va a d is m in u ir o increm entar el in te rv a lo de tiem po L a siguiente in s tru c c ió n m uestra en la etiqueta N ° 1 (L a b e ll) la d iferencia
Ejemplo: en semanas que existe entre el 30 de Setiem bre del año 1999 y el 01 de
Las siguientes instrucciones muestran en L a b e ll la fecha actual y en Label2 M a y o del año 2000.
la fecha a nte rio r pero increm entada en dos semanas. Si desea d is m in u ir dos L a b e ll = D a te D iff("w w ", C V D a te ("3 0 -0 9 -9 9 "), C V D a te fO 1-05-00"))
semanas, debe e s c rib ir menos dos (- 2 ).
NOTA
Label 1 = Now
V isual Basic devuelve cero (0) si las fechas se encuentran dentro del m ism o
Label2 = DateAdd("ww", 2, Now)
in te rv a lo de tie m p o indicado. Por eje m p lo, si el p rim e r día de la semana es
dom ingo, la instrucción:
FUNCIÓN DATEDIFF
Labell = DateDiff("ww", C V D atef 14-07-00"), CV D atef 15-07-00"))
D evuelve la d ife re n cia entre dos fechas en un in te rv a lo de tie m p o indicado.
Muestra en Labell el valor cero (0) porque el 14-07-00 es viernes y el 15-07-00es
P or ejem plo, la d ife re n cia de dos fechas en días, semanas, meses, etc. Su
sintaxis es: sábado (la misma semana).
DateDiff(Intervalo, Fecha I, Fecha2, Valor I,VaIor2) L a instrucción:
Intervalo Labell = DateDiff("ww", CV D atef 15-07-00"), CVDate(" 16-07-00"))
In d ica en qué in te rva lo de tie m p o se va a c a lcu la r la d ife re n cia entre las dos M uestra en L a b e ll el v a lo r uno (1) porque el 15 de J u lio del año 2000 es
fechas. Los valores que puede tener son los m ism os que en la función DateAdd. sábado y el 16 de Ju lio del año 2000 es d o m in g o (siguiente semana).
Fechal y fecha2
Son las fechas entre las cuales se va a c a lcu la r la d iferencia.

148 G ru po E d it o r ia l Megabyte<|f¡¡jj||| 149


VISUAL BASIC como debe se r.. . > CAPÍTULO III: Elementos de la Programación
FUNCIÓN DATEPART 1. ESCRIBIR LAS INSTRUCCIONES PARA LOS CONTROLES.
Perm ite obtener el in te rv a lo de tie m p o en el cual se encuentra una fecha. Instrucciones del Form_Activate
Prívate Sub Form_Activate()
P o r e je m p lo, a qué núm ero de la semana del año corresponde a una fecha.
Textl = ""
Su sintaxis es: Label7 = ""
DatePart(Intervalo, Fecha, Valorl,VaIor2) LabelS = ""
Intervalo Textl. SetFocus
F onnl.C aption = "Fecha A c tu a l: " + Str(Date)
In d ica el in te rva lo de tie m p o en el que se encuentra la fecha. Los valores
End Sub
que puede tener son los m ism os que en la fu n c ió n D ateA dd.
Instrucciones del del Botón Aceptar
Fecha Prívate Sub Commandl _Cl¡ck()
Es la fecha que se desea evaluar. Dim Dia,Mes As Integer
Valorl y Valor2 Dim Fecha As date
Son los m ism os que los de la fu n ció n D a te D iff. IflsDate(Textl) Then
Fecha = CDate(Textl)
Por e jem plo, la siguiente in stru cció n m uestra en L ab el 1 el trim e stre del año
Día = Day( Fecha)
al cual pertenece la fecha actual.
Mes = Month( Fecha)
Label 1 = DatePart("q", Now) Rem ESTACION DE NACIMIENTO
If(Dui>=23And Mes=12) OrMes- 10rMes=2 Or(Dia<=22 AndMes=3) Then Label6= "Verano"
APLICACIÓN DE EJEMPLO: lf(Dia>=23AndMes=3) 0rMes=4 0rMes=5 Or (Dia<=22And Mes=6) Then Label6= "Otoño"
E sta a p lic a c ió n p e rm ite in g re s a r una fe c h a de n a c im ie n to y m ue stra lf(Dia> =23 AndMe=6)0rMes=70r Mes=8 Or (Dia< =22AndMes=9) Then LabeI6= "Invierno"
in fo rm a ció n u tiliza n d o las funciones anteriores: lf(Dia>=23AndMes=9) 0rMes=l()0rMes=II 0r(Dia< =22AndMes= 12) Then Label6="Primav.
Rem SIGNO ZODIACAL
TTTc: lf(Dia>=21 And Mes=3) Or (Dia <= 20 And Mes = 4) Then Label7 = "Aries"
Fecha de Nacimiento |oi -05-68 1 I f (Dia>=21 And Mes=4) Or (Dia <= 20 And Mes = 5) Then Label7 = "Tauro"
N om bre de la E s ta c ió n en la q u e n a c ió jO toño
I f (Dia>=21 And Mes=5) Or (Dia<=20 And Mes = 6) Then Label7 = "Geminis"
lf(Dia>=21 And Mes=6) Or (Dia<=22 And Mes = 7) Then Label7 = "Cáncer"
S igno Z o d ia c a l al q u e p e rte n e c e |Tauro
lf(Dia>=23 And Mes = 7) Or (Dia <= 22 And Mes = 8) Then Label7 = "Leo"
N 9 de la S em ana del A ñ o e n q u e n a c ió h 8 I f (Dia>=23 And Mes=8) Or (Dia < =22 And Mes = 9) Then Label7 = "Virgo"
M eses T ranscurridos d e s d e q u e n a c ió {377
I f (Dia>=23 And Mes=9) Or (Dia<=22 And Mes = 10) Then Label7 = "Libra"
I f (Dia>=23 And Mes=10) Or (Dia<=2l And M es= ll) Then Label7="Escorpio"
F e c h a A c tu a l D e spués de 3 Sem anas lf(Dia>=22 And M es= Il) Or (Dia<=21 And Mes=12) Then Label7="Sagitario"
23-10-1999 If(Dia>=22 And Mes=12) Or (Dia< = 19 And M es=l) Then Label7="Capricorn."
I f (Dia>=20 And M es=l) Or (Dia<=18 And Mes = 2) Then Label7 = "Acuario"
I f (Dia> = 19 And Mes=2) Or (Dia<=20 And Mes = 3) Then Label7 = "Piscis"
1. DIBUJAR LOS CONTROLES Label8 = DatePart("ww", CDate(Textl))
g n ^ — — ■ 1□ 1x 1 Label9 = DateDiff("m", CDate(Textl), Date)
Label 11 = DateAdd("ww", 3, Date)
L a b e ll jl* e x t l C om m andl j
Else
L a b e l2 L a b e IS MsgBox "La fecha ingresada no es correcta", 64, "Verifique"
L a b e l3 L a b e l7 Textl.SetFocus
End If
L a b e l4 L a b e lQ
End Sub
L = b » l5 L a b ' 19 Instrucciones del del Botón Salir
L a b e l! O Prívate Sub Command2_Click()
End
L a b e ll 1 C om m and?
End Sub

150 G ru po E d it o r ia l M egabyte^
O

m k » VISUAL B A SW co.no t e t e s e , . . CAPÍTULO III: Elementos de la Programación %


VAL
F U N C IO N E S T IP O H O R A
I .a fu n c ió n Val convierte una cadena de caracteres en un v a lo r num érico.
TIM E
VAL(Cadena)
D evu elve la H ora exacta del sistema H H :M M :S S .
STR
HOUR ,u fu n c ió n Str co nvierte un v a lo r num érico en una cadena de caracteres.
O btiene sólo las Horas (H H ). STR(Valor Numérico)
M INUTE CHR
D evuelve el carácter A S C II de un valor. C H R (V a lo r).
O btiene sólo los M in u to s (M M ).
ASC
SECOND D evuelve el v a lo r A S C II de un carácter. A S C (C arácter).
O btiene sólo los Segundos (SS). FORM AT
R ealiza lo m ism o que STR , y además da un fo rm a to a la salida de acuerdo
F U N C IO N E S N U M E R IC A S con el patrón especificado.
ABS Ejemplo:
O btiene el v a lo r absoluto de un núm ero. A B S (N ú m e ro ). Si la variable Sueldo = 635, la siguiente instru cció n :
BVT
Textl = Format(Sueldo,” ###,##0.00” )
O btiene la parte entera de un núm ero. IN T (N ú m e ro ).
SQR V is u a liz a en la caja de texto el v a lo r: 635.00
O btiene L a raíz cuadrada de un núm ero. S Q R (N úm ero ). E l s ím b o lo # rep re se n ta un d íg ito c u a lq u ie ra , e x c e p to los ceros no
RND
significativos. E l sím bolo cero (0) representa un d ígito cualquiera, incluyendo
R etorna un v a lo r random .
los ceros no s ig n ific a tiv o s y además redondea el resultado. E l punto indica
Para obtener núm eros aleatorios en un in te rv a lo dado, use esta fó rm u la :
la p osición del punto d ecim al y la com a es el separador de m iles. O tros
Int( i(Lím._superior-Km._inferior+l)*Rnd+ lím.Jnferior) sím bolos que tam bién se pueden usar son: + -$ () y espacios. E l sím bo lo %
Por ejem plo, para obtener números aleatorios entre 12 y 50 u tilic e la siguiente representa el v a lo r p o r ciento y añade este sím bolo al resultado.
form ula:
Para indicar el separador decimal (punto o coma) debe hacerlo en la
Int((50 - 12 + 1) * Rnd + 12) configuración del Windows.
RANDO M IZE
In ic ia liz a el generador de núm eros aleatorios, p e rm itie n d o que no se repita ISNUM ERIC
la secuencia de núm eros aleatorios anteriores. Perm ite saber si un v a lo r se puede considerar com o num érico.

SGN ISNUMERIC(Valor)

O btiene el signo de un núm ero. SGN(Número) ISEM PTY


P erm ite saber si una variab le está vacía.
-1 Negativo, 0 Cero, 1 Positivo
ISEMPTY (Variable)
HEX
C on vie rte un n úm ero a Base H exa de cim a l. HEX(Número). ISNULL
OCT Perm ite saber si el contenido de una variab le no es válido.
C o n vie rte un núm ero a Base O ctal. OCT(Número). ISNULL(Variable)

152 G r u po E d it o r ia i Megabyte 1 fc 153 ^


O

ja m CAPÍTULO III: Elementos de la Programación ^


VISUAL BASIC como debe ser.
APLICACIÓN DESARROLLADA N° 15 NUEVAS FUNCIONES
Esta aplicación es un eje m p lo de la u tilid a d de las funciones tip o num éricas.

□ x L a Versión 6.0 de V isual Basic tiene las siguientes funciones:


ROUND
Ingrese un número j[~ Labell ¡(Textl

Label2 LabeIS
Esta fu n c ió n perm ite redondear un núm ero a una determ inada cantidad de
Parle Entera
Label3 LabellO Commandl decimales.
Parte Decima! M U E S TR A
Labe!4 LabelH
Round (Valor.; Número de Decimales)
Valor Absoluto Command?
NUEVO
Label5 Labell 2
M O NTHNAM E
R a íz cuadrada
Command3
SALIR
LabelB Labell 3 Esta fu n c ió n m uestra el nom bre del mes a p a rtir de un núm ero entre 1 y 12.
Signo del Número

Valor Octal (Base 8) Label? Labell 4 MonthName (Numero, Valor Lógico)


Valor Hexadecimal (Base 16) Labelô Labell 5 El núm ero debe estar entre 1 y 12 de lo c o n tra rio se m uestra un mensaje de
error. E l v a lo r ló g ic o es o pcion al: T rue in d ic a que el nom bre se m uestre en
abreviatura y False com pleto.
A sig ne la propiedad C aption al fo rm u la rio , botones de comandos y etiquetas
W EEKYDAYNAME
desde L a b e ll hasta L a b e l 8 . E l resto debe estar en blanco. M uestra el nom bre del día de la semana a p a rtir de un N ° entre 1 y 7 según
Instrucciones del botón M U E STR A: el 1er. D ía de la semana co nfig urad o.
Prívate Sub Commandl_Click() WeekDayName (Número, Valor lógico,Primer Día)
Dim NUM As Double
I f lsNumeric(Textl) Then N úm ero debe estar entre 1 y 7, V a lo r L ó g ic o in d ic a si el nom bre se muestra
NUM = Val(Textl) en abreviatura. P rim e r D ía co n fig u ra el día que se debe considerar el que
Label9 = Int(NUM)
LabellO = NUM - Val(Label9) in ic ia la semana y puede tener uno de los siguientes valores:
Labelll = Abs(NUM)
1 Domingo (Predeterminado), 2 Lunes, 3 M artes,... 7 Sábado.
‘No se puede obtener la Raíz Cuadrada de un # Negativo
IfNUM > 0 Then Por ejem plo: W e e kD ayN am e(3,F alse,5) d evuelve sábado porque el 1er día
Lab el 12 = Sqr(NUM)
Else de la semana se ha c o n fig u ra d o a 5 (Jueves).
Lab el 12 - "No Existe" R E P LA C E
End If Reemplaza una subcadena p o r otra dentro de una cadena.
Labell 3 = Sgn(NUM)
LabelM = Oct(NUM) Replace (Cadena, SubCadenal, SubCadena2, ValorI, Valor2)
Labell 5 = Hex(NUM) ( 'adena es aquella donde se desea re a liz a r el reem plazo.
Else
MsgBox "Debe ingresar un valor numérico", 0, "Sólo números" SubCadenal es la subcadena que va hacer reemplazada.
Textl = "" SubCadenal es la subcadena reem plazante.
Textl.SetFocus V a lo r 1 es un v a lo r que in d ic a la p osición de la cadena desde donde se va a
End If luiscar la subcadena que va hacer reemplazada.
End Sub V a lo ré in d ic a la ca n tid a d de veces que desea buscar y ree m p laza r la
En el botón N ue vo, lim p ie T e x tl y las etiquetas desde L ab el9 hasta Label5 ubcadena. E l v a lo r - 1 (pred eterm in ad o) in d ic a que busque y reem place
lodas las subcadenas que se encuentren.
y el botón S a lir escriba la in stru cció n E N D .
|VISUAL BASIC como debe ser... - "xs CAPITULO III: Elementos de la Programación
STRREVERSE FUNCIÓN SHELL
In v ie rte los caracteres de una cadena.

StrReverse (Cadena) La fu n c ió n S H E L L se u tiliz a para ejecutar program as (archivos ejecutables


com o *.E X E , *.C O M , etc.) desde el V isu a l Basic.
El ú ltim o carácter lo coloca p rim e ro , el p e n ú ltim o lo coloca segundo, etc. Su sintaxis es:
FORMATCURRENCY
A sig n a un fo rm a to m onetario a los núm eros. El signo m onetario depende de SHELL “RUTA Y NOMBRE DEL PROGRAMA”,
la C onfigu ración R egional.
La ruta es la d ire cció n exacta de la carpeta donde se encuentra el program a
FormatCurrency (Número, Valorl, Valor2, Valor3, Valor4) que se desea ejecutar.
V a lo r l: Indica la cantidad de decimales. E l v a lo r in d ic a el e stilo de la ventana donde se va a ejecutar el program a:
Valor2: Indica si se muestra un cero en la parte entera cuando no hay decimales.
Valor3: Indica si los negativos deben estar entre paréntesis. 0 : O cu lta la ventana donde se ejecuta el archivo.
Valor4: Indica si se muestra el separador para los miles. 1 : E jecu ta el p ro g ra m a en su ve n ta n a d e ta m a ñ o norm al.
2 : E jecuta el program a con su ventana m in im iza da .
Valor2, valor3 y Valor4 pueden ser: 3 : E jecuta el program a con su ventana m axim izada.
-1 SI, 0 N O ,- 2 Según la configuración Regional 4 : E jecuta el program a con el tam año y posición mas reciente de su
NOTA ventana. L a ventana actual co n tin u a activa.
Si no in d ica n in gú n valor, V isu a l Basic m uestra los resultados según la 6: Ejecuta el program a con su ventana m in im iz a d a y la ventana actual
co nfig uració n regional (In icio /C o n fig u ra ció n /P a n e l de C o n tro l) c o ntin ua activa.

Si no escribe el v a lo r el program a se vis u a liz a con la ventana m in im iza da .


Configuración Por ejem plo, la siguiente in s tru c c ió n ejecuta la calculadora del w ind ow s.
regional

FORMATNUMBER Shell "c:\window s\calc.exe", 1


Esta fu n c ió n es s im ila r a F o rm a tC u rre n c y pero no m uestra el s ím b o lo D e sp u é s d e e je c u ta r el p ro g ra m a , V isual B a sic c o n tin u a e je c u ta n d o
m onetario. la s s ig u ie n te s in s tr u c c io n e s q u e s ig u e n a l S H E L L . E sto n o s d á la
FORMATDATETIME p o s ib ilid a d d e e je c u ta r v a rio s p ro g ra m a s. P o r e je m p lo la s sig u ie n te s
A sig n a un fo rm a to a datos tip o fecha y hora. in stru c c io n e s e je c u ta n la ca lc u la d o ra y el p a n e l de control.
Form atD ateTim e(F echa, Valor) Shell "c:\windows\calc.exe", 1
E l v a lo r puede ser: Shell "c:\windows\control.exe", 1
0: F orm ato general (Fecha u H ora). L a f u n c i ó n S h e ll d e v u e lv e un v a lo r tip o D o u b le q u e in d ic a s i e l
1: Form ato de fecha largo. p ro g ra m a se ha e je cu ta d o con éxito, ca so c o n tra rio d evu e lv e cero (0).
2: Form ato de fecha corto. P a ra o b te n e r este v a lo r u tilice la sig u ie n te sin taxis:
3: F orm ato de hora según la c o n fig u ra c ió n regional.
4: M uestra la hora en fo rm a to de 24 hora. V A R IA B LE = SH E LL(“ R U TAY NOM BRE D E L PROG RAM A” , VALOR)

156 G r u po E d it o r ia l Meeabvte
|¡ I ¡ ¡ i > VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación %
APLICACIÓN DESARROLLADA N° 16 FOR-NEXT
L a siguiente a p lica ció n p erm ite ejecutar desde el V isu a l B a sic algunos P erm ite crear bucles. U n bucle es la re p e tic ió n de una o más instrucciones.
program as. Su sintaxis es:
F O R variable = v.inicial T O v.final S T E P incremento
¡a. u so d e l s h ell
_________________________ M
Instrucción(es)
|P r o g r a m a a E /e c u ta r : N E X T variable
STEP: Sólo es necesario cuando el incremento es diferente de 1.
C A LC U LA D O R A E LE C TR O N IC A EXIT FORM: Permite salir del bucle.
DO-LOOP
MICROSOFT W O R D
Permite ejecutar una o más instrucciones mientras una condición se cumpla
MICROSOFT EXCEL (W H IL E ) o hasta que se cum pla una c o n d ic ió n ( U N T IL ). Tiene cuatro
sintaxis:
EXP LO R A D O R DE W IN D O W S
D o W hile Condición D o Until Condición
SALIR A L D .O .S. Instrucción(es) Instrucción(es)

í...... FIN A L IZ A R ....... ]} Loop Loop


Do Do
Instrucción(es) Instrucción(es)
Si sale al D.O.S., escriba EXIT para regresar al Windows.
Loop W hile Condición L oop Until Condición
La instrucción de cada Botón de Comando es:
M UY IMPORTANTE
Private Sub Command 1JClickf) M ientras Visual Basic está ejecutando un bucle, no reconoce ningún evento. Esto
Shell "C:\WlNDOWS\CALC.EXE", 1 lo p u ed e evitar con la instrucción D oEvents.
End Sub
DOEVENTS
Prívate Sub Command2_Click()
Shell "C:\Archivos deprograma\Microsoft Offtce\Office\WINWORD.EXE", 1 D oE ven ts p a sa el co n tro l a l sistem a o p era tivo y verifica si a ocu rrid o
End Sub a lg ú n even to . S i a o c u rrid o un e v e n to o e v e n to s lo s e je c u ta y lu eg o
Prívate Sub Commands_Click() co n tin u a con el e v en to inicial.
Shell "C:\Archivos de programa\Microsoft Ojfice\Office\EXCEL.EXE", I E je m p lo s:
End Sub
Dim x Integer E stas instrucciones m ueven la etiqueta N° 1 de
Prívate Sub Command4_Click()
For x = 1 To 10000 izq u ierd a a d erec h a y no se reco n o ce n ingún
Shell "C:\WINDOWS\EXPLORER.EXE", I
End Sub Labell .Left = x evento hasta que termine.
Next
Prívate Sub Command5_Click()
Shell "C:\WINDOWS\COMMAND.COM", 1 Dim x As Integer
End Sub E stas instrucciones m ueven la etiqueta N° 1 de
For x = / To 10000 izquierda a derecha, p ero cada vez que ejecuta el
Prívate Sub Commandó_Click() Labe 11. Left = x bucle verifica si ha ocurrido algún evento pa ra
End Doevents ejecutarlo.
End Sub Next

'mm ™ G ru po E d it o r ia l Megabyte
m s* VISUAL BASIC como debe ser. CAPÍTULO III: Elementos de la Programación
P A S O N ° 0 3 :E s c rib ir las instrucciones para los controles.
APLICACION DESARROLLADA N° 17
Se debe ingresar un texto y luego se debe m ostrar letra p o r letra del texto Instrucciones del botón OK:
ju n to con su v a lo r A S C II y su va lo r B in a rio ; además, el va lo r b in a rio se debe
desplazar de izqu ierda a derecha p o r el fo rm u la rio . Prívate Sub Commandl_C!ick()
TEXTO = Trim(Textl)
Ö E JE M P L O S D E B U C LES • . |n| x| For X - 1 To Len( TEXTO)
Label7 = " "
IN G R E S E U N T E X T O
LETRA = Mid(TEXTO, X, 1)
LE TR A
Label5 = LETRA
VALOR = Asc( LETRA)
V A L O R A SC II Labeló = VALOR
La be 17 = BlNARIO( VALOR)
V A L O R B IN A R IO
Label8 = Label7
‘Mvimiento del valor Binario
OK
For T = 1 Tó 5000 Step 0.1
Label8.Left - T
Next T
N extX
End
P A S O N ° 01: D ib u ja r los controles
End Sub

I ^ Form » -.In i x |
Instrucciones de la función BINARIO:
L a b e ll IfT e x tl

La b e l2 LabeIS Prívate Function BINARIO(NUM)


Dim VALORBIN As String
La b e l3 LabelB Do While NUM > 1
RESTO = NUM Mod 2
La bel4 L a bel?
NUM = N U M \2
C om m a n d l I
VALORBIN = Trim(Str(RESTO)) + Trim( VALORBIN)
Loop
LabelQ VALORBIN = Trím(Str(NUM)) + VALORBIN
BINARIO = VALORBIN
End Function
P A S O N ° 02: A s ig n a r las propiedades a los controles.
A sig n e la p ropiedad C ap tion a los controles según el ejem plo.

160 G ru po E d it o r ia l Megabyte < 16, 4 ¡£ »


ill i^ VISUAL BASIC como debe ser.. . CAPÍTULO III: Elementos de la Programación ^ ¡¡¡¡¡1

i
APLICACIÓN DESARROLLADA N° 18
ARRAYS Se debe ingresar un núm ero del 1 al 7 y v is u a liz a r el nom bre del día de la
semana.
U n array perm ite almacenar en una sola variable, varios elementos del m ism o
tip o u tiliz a n d o un índice. El p rim e r elem ento de un array se alm acena en - I1-n|
---- x |1
---1----
fo rm a predeterm inada en el índice 0, pero con la instru cció n O PTIO N B A SE
7, le in d ica al V isual Basic que el p rim e r elem ento de un array se almacene Ingrese un número (1-7]
en el índice 1.
C on la palabra P U B L IC se declaran arrays globales y lo debe hacer en la
sección de declaraciones de un m ód ulo .
C on la palabra D IM se declaran arrays a n iv e l del m ód ulo o del fo rm u la rio .
GK
C on la palabra STA TIC se declaran arrays locales a un p rocedim iento.
Salir

A r r a y s E s tá tic o s .
Se caracterizan porque tienen un n úm ero fijo de elementos. E jem plos: 1. D ib u ja r los controles y asignarle sus propiedades.
Dim Nom (19) A s String 2. D eclarar en la sección de declaración del fo rm u la rio .
D ecla ra la va riab le N om de tip o cadena que p erm ite alm acenar veinte Dim D (1 To 7) As String * 9
elem entos (de 0 a 19). 3. A s ig n a r los elementos al array en F O R M L O A D .
Dim A (1 to 15) A s Integer Prívate Sub Form_Load()
'Almacena los elementos en el Array
D eclara la variable A de tipo integer que perm ite alm acenar 15 elementos D (1) = "Lunes"
(de 1 a 15). D(2) = "Martes"
Static N um (1 to 4, 1 to 4) A s Integer D(3) = "Mi ércoles"
D(4) = "Jueves"
D eclara la variable N um de dos dim ensiones (4 * 4) de tip o Entero. D(5) = "Viernes"
A r r a y s D in á m ic o s . D(6) = "Sábado"
D (7) = "Domingo"
Se caracterizan porque sus dim ensiones no son fijas.
End Sub
E l espacio para un array d in ám ico será asignado durante la e jecución del 4. Escribrir las instrucciones del Botón OK.
pro gram a . Un array d in ám ico, puede ser red im e nsion a do en c u a lq u ie r Prívate Sub Commandl_Click()
m om ento de la ejecución del program a. Dim N As Integer
N = Val(Textl)
R E D IM If N >= 1 And N <= 7 Then
Es una in stru cció n que perm ite ca m b ia r e l núm ero de elementos de un array, L ubel2- "El número ingresado representa el día "+D(N)
se debe e scrib ir solamente en un p ro ce d im ie n to . E je m p lo: El se
MsgBox "Sólo números del 1 al 7", 0, "Por favor"
Dim Num () As Integer Textl = ""
D ecla ra ción din ám ica de la va riab le N u m de tip o Entero. Textl.SetFocus
En el m om ento que necesite asignarle espacio puede e scribir: End If
End Sub
Redim N um (N )
D onde N contiene el valor con el que desea redim ensionar la variable N um . El botón S A L IR debe tener la in stru cció n E N D .

íljllllll^ 162 G ru p o E d ito ria l Megabvte


(
VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación

CREAR UNARRAYDE CONTROLES APLICACIÓN DESARROLLADA N° 19


E xisten dos form as de crear un array de controles: L a siguiente aplicación perm ite ingresar valores en un array de 4 X 4 ó
l.Cuando los controles ya están dibujados en el formulario. lle n a rlo con valores al azar entre 1 y 50, luego se pueden ordenar en fo rm a
Si los controles ya están dibujados en el fo rm u la rio y desea crear con ellos ascendente y restaurar los valores iniciale s.
un array de controles, asígneles el m ism o nom bre (propiedad Ñ A M E ) a PASO N° 1: D ib u ja r los controles
cada uno de ellos. A l escribir el m ism o nom bre al segundo c o n tro l se
ti, F o tm l ¡U s T E l
visualiza el siguiente mensaje:
F ra m e l
M icrosoft V isu a l Basic |[T e x tl |T e x t2 I T e xt3 j T ext4 C om m andl

Y a existe un control llam a do 'N'. ¿ D e se a crear u n a m atriz de C om m a n d 2


| t e xt5 JT extG |Tex<7 I T e x t8
co n tro le s ?
C om m a n d 3
1T ext9 I T e x tl 0 |T e x t1 1 T e x tl 2
Sí No
C om m a n d 4

|T e x t1 3 |T e x tl 4 | t e x tl 5 1T e x tl 6
C om m and5
Haga c lic k en el botón SI y continúe asignado el m ism o nom bre a los si­
guientes controles. Cuando todos los controles tienen un m ism o nom bre se
tiene un array con una sola dim ensión cuyos elementos se d iferen cian por el
PASO N° 2: Convertir las Cajas de Texto en un array.
v a lo r de su propiedad IN D E X de cada co n tro l, por ejem plo: E l p rim e r con­
tro l tendrá en su propiedad Index el v a lo r 0, el segundo c o n tro l tendrá el
Cree un array de controles con las cajas de te xto usando cualquiera de los
v a lo r 1, etc.
dos form as indicas y asígnele el n om bre N en la propiedad Ñame a cada
2. Cuando los controles todavía no están dibujados en el formulario.
una de ellas.
Si los controles todavía no los ha d ibujado en el fo rm u la rio , entonces d ib u ­
je sólo el p rim e r c o n tro l y asígnele, si lo desea, un nom bre diferente al que ¡i,. ORDENACION DE UN ARRAY
tiene en fo rm a predeterm inada, luego selecciónelo haciendo un C lic k en
V alores del Array
dich o co n tro l y pulse las teclas CTRL+C, para co p ia rlo en la m em oria
NUEVO
de la com putadora y después pulse las teclas CTRL+V, para pegarlo en
el fo rm u la rio . I2 1 I4 I 5
Í3

[ ' O R D E Ñ A R ']
L a p rim era vez que U d. pulsa CRTL+V, se visua liza el mensaje anterior,
haga C lic k en el botón SI y continúe pulsando CTRL+V hasta que tenga I8 I 12 !
1 |23 28
RESTAURAR I
la cantidad de controles deseadas. Cada c o n tro l que pega se ubica en la
parte superior izquierda del form ulario uno sobre otro, con el m ism o nombre,
I 43 1 44 |S3 |54
LLENAR
pero con la propiedad IN D E X diferente. Cuando term ine ubíquelos en su
respectivo lu g a r y en el orden correcto.

L as tecla s C T R L + C eq uivalen a la o p ció n C o p ia r (C o p y) de la opción


j GG
I 76 leo 1154 SALIR

E D IT A R (E D IT ) d e la B arra de M en ú y C T R L + V eq u iv a le a la opción
P e g a r (P aste).

164 G ru p o E d ito r ia l Mega bvte


CAPÍTULO III: Elementos de la Programación ^|É feiÍP
áüÉyÉÍ!' VISUAL BASIC como debe ser.. .
PASO N° 3: Escribir las instrucciones para los controles. Instrucciones del Botón LLENAR
En el objeto G E N E R A L y en el evento D E S C R IP C IO N E S del fo rm u la rio Estas instrucciones llenan las cajas de texto con valores al azar entre 1 y 50.
declare las siguientes variables:

L a fu n c ió n R N D , perm ite obtener valores al azar y para obtener valores al


Se declara la variab le O R IG E N tip o array a n iv e l de fo rm u la rio para poder
azar entre un rango determ inado se u tiliz a la siguiente fo rm u la :
llam ar a los datos desde cu alqu ier pro ced im ien to .
La va ria b le Y A se u tiliz a para saber si ya se alm acenaron los valores Int((límitesup - límiteinf + 1) * Rnd + límiteinf)
originales en el array O R IG E N
Límitesup:
Dim ORIGEN( 16) As Integer
Es el v a lo r m á xim o que deseamos obtener.
Dim YA As Boolean

Instrucciones del Evento FORM ACTIVATE Límiteinf:


Es el v a lo r m ín im o que se deseamos obtener.
A l activarse el fo rm u la rio se llam an a las instrucciones del C o m m a n d l para
lim p ia r el contenido de las cajas de texto. Por e je m p lo para obtener valores al azar sólo entre 7 y 36 se escribe:

Prívate Sub Form_Activate()


lnt( ( 3 6 - 7 + 1 ) * Rnd + 7).
‘A l activarse el formulario se llaman a las instrucciones del
'Commandl para limpiar el contenido de las cajas de texto
CommandljC lick Int:
End Sub Es una fu n c ió n que p erm ite obtener sólo la parte entera (sin decim ales) de
un valor.

Instrucciones del Botón NUEVO Prívate Sub Command4_Clíck()


‘Almacena en las cajas de texto
Estas instrucciones perm iten lim p ia r el contenido de las cajas de texto para
‘valor al azar entre 1 y 50
ingresar nuevos valores.
F orX = OTo 15
Prívate Sub Commandl_Click() N(X) = lnt((50 -1 + 1 )* Rnd + I)
Dim X A i Integer Next X
F orX = OTo 15 Activa el botón ORDENAR
N(X) = " " Command2.Enabled = True
N extX
‘Desactiva el botón RESTAURAR
N(0).SetFocus
Command3.Enabled = False
‘Activa el botón ORDENAR
Command2.Enabled = True ‘Inicializa la variable Ya
‘Inicializa la variable Ya YA = False
YA = False End Sub
End Sub

166 G ru p o E d ito ria l Megabyte


VISUAL BASIC como debe. ser. _. CAPÍTULO III: Elementos de la Programación
Instrucciones del Botón ORDENAR APLICACIÓN DESARROLLADA N° 20
Prívate Sub C o m m a n d l _C lick()
La siguiente a plicación perm ite m anejar los elem entos de array de 4 x 4.
Dim A R ( 16) A i Integer
‘Copia los valores de las cajas de texto en las Estos elementos son valores n um éricos de tip o entero con los cuales se
‘variables tipo array A R y O RIG EN realiza los siguientes procesos:
F o r X = 0 T o l5
I fN o t YA Then 1.- Suma las filas.
O RIG EN(X) = Val(N(X)) 2.- Suma las colum nas
E n d lf 3.- Sum ar las diagonales, etc.
A R (X ) = Val(N(X))
N ext a. MANEJO DE ARRAYS ■ ■ ■ - !n |x ¡

‘O rdena los valores que se encuentran en la variable A R C0L1 COL 2 COL 3 COLI
Do FILA 1 [ i [2 [6 p p - LIMPIAR EL ARRAY i
sw - 0
F or X = 0 7o 14 F IU 2 |Í2 |— - p------- f -------- |20 LIMPIA LOS BESULTADOsj

I fO p tio n l Then FIL43 p [5 [3 jÍ3 SUMA U S COLUMNAS |

IfA R (X ) > A R (X + 1) Then n w . p ------- [ío — p ----------p — p - SUMA LAS ElLAS |


A X - A R (X ) [ _ _

A R (X ) = A R (X + 1)
A R (X + 1) = A X | SUMAS INDEPENDIENTES -----
sw - 1
COLUMNA 1 | COLUMNA 2 | COLUMNA 3 | COLUMNA 4 |
E n d lf
Else FILAI 1 FILA 2 | FILA3 1 F ILM 1 1
IfA R (X ) < A R (X + 1) Then
DIAGONAL Ni 1 | \ ) | j DIAGONALN12 [ / ) !
A X = A R (X )
A R (X ) = A R ( X + 1) |25 |15
SAUR 1 1

A R (X + 1) - A X
sw = 1
E n d lf
E n d lf PASO N° 1: Dibujar los controles.
N e x tX
Loop Until sw = O Labell Label2 Label3 LabeM .........................
‘M uestra los valores ordenados en las cajas de textos
F o r X - O To 15 Label5

|7^r fr¿r [ f ür l*™ ;
N (X ) = A R (X ) ; 1Text5 ¡Text6 |Text7 jíexl8 Label14 • - Command2 |
Labelß
N e x tX
YA - True : Labd7 •f r ^ T fie x iT ö f í ^ ñ T fr3 rt2 \ Command3 |

• Label8 |TexH3 ¡Text14 |TexH5 fTextlG L-abel16 Command4 |


‘A ctiva el botón restaurar
C om m and3.E nabled - True : LabeB LabellO Labdl.1 Label12 : : : : : : :

E nd Sub
Instrucciones del Botón RESTAURAR
E sta s in s tr u c c io n e s m u e s tra n en la s c a ja s ele te x to lo s va lo re s en la
p o s ic ió n o r ig in a l (a n te s ele o rd e n a rse ).
Comrr¡aiid9 I Commandl 0 I Command'll I Commandl 2 I;
Prívate Sub Command3_Click()
For X = O To 15 Commandl 3 Commandl 4

N(X) = ORICEN(X) Labell 8 Labell 9


NextX Commandl 5

End Sub
168 G ru p o E d ito r ia l Megabyte
¡

á lll^ É I’' VISUAL BASIC como debe ser.. . > CAPÍTULO III: Elementos de la Programación
PASO N° 2: Convertir las Cajas de Texto en un array. PASO N° 6: Escribir las instrucciones para los controles.
En la ventana de declaración del fo rm u la rio d efin a las siguientes variables:
U tilic e cualquiera de las dos form as explicadas. A signe el nom bre N a cada
una de las cajas de Texto. Dim COL, F1L, X, ST As Integer
Dim A(1 To 4, 1 To 4), SUMA(1 To 4) As Integer

PASO N" 3: Convertir las Etiquetas desde Label9 hasta Labell2 C rear el siguiente p ro ced im ien to en el fo rm u la rio .
en un array de controles. E ste p ro ce d im ien to p e rm ite p a sa r los valores a lm a c en a d o s en la s cajas
A signe a cada una de estas etiquetas el nom bre SC empezando p o r Label9 d e texto a l a rra y d efin id o en la va ria b le A .
en form a ordenada hasta label 12, pero al fin a l cambie el v a lo r de la propiedad
NO TA:
IN D E X de cada etiqueta de tal manera que Label9 se llam e SC, pero que su
E l ín d ic e d e l a rra y d o n d e se p a sa n lo s va lo re s d e la s c a ja s d e texto
propiedad IN D E X tenga el v a lo r 1, L a b e llO tenga en su propiedad IN D E X
em p ie za n con el v a lo r 1.
el va lo r 2, Label 11 tenga en su propiedad IN D E X el v a lo r 3, L ab el 12 tenga
en su propiedad IN D E X el va lo r 4. Sub PASAR()
X=0
Para cam biar el va lo r de la propiedad IN D E X de cada c o n tro l debe empezar For COL = lT o 4
p o r el ultimo (en el e je m p lo em piece p o r L a b e l 12). Esto nos perm ite For FIL = lT o 4
A(COL, FIL) = Val(N(X))
program ar de una fo rm a más cóm oda p o r que el array de controles em pieza
X =X+1
con el In dice uno (1) y no con el cero (0).
Next FIL
Next COL
PASO N° 4: Convertir las Etiquetas desde Labell3 hasta Labelló End Sub
en un nuevo array de controles.
Instrucciones para el evento FORM_ACTIVATE.
Prívate Sub Form_Activate()
Asigne a cada una de estas etiquetas el nom bre SF empezando p o r Label 13
‘Al activarse el formulario llama al procedimiento
en form a ordenada hasta label 16, pero al fin a l cambie el va lo r de la propiedad
‘COMMAND1JCLICK (Limpia los valores) y al
IN D E X de cada etiqueta de tal manera que Label 13 se llam e SF, pero que 'procedimiento COMMAND2_CLICK (Limpia los resultados)
su propiedad IN D E X tenga el va lo r 1, Label 14 tenga en su propiedad IN D E X Commandl jC lick
el va lo r 2, Label 15 tenga en su propiedad ÍN D E X el v a lo r 3 y Label 16 tenga Command2_Cl ick
en su propiedad IN D E X el va lo r 4. End Sub
Botón LIMPIAR EL ARRAY Botón L IM P IA LOS RESULTADOS
MUY IMPORTANTE
Private Sub Commandl_Click() Prívate Sub Command2_Click()
N o se o lvid e em pezar por el ú ltim o co n tro l (en el e je m p lo em piece por
'Limpia los valores del array 'Limpia los resultados
L a b e lló ) para ca m biar el va lo r de la propiedad IN D E X . F orX - OTo 15 F orX - 1 To 4
PASO N° 5: Asignar a los otros controles sus propiedades. N(X) = "" SF(X) = ""
L a propiedad p rin c ip a l a m o d ific a r es C A P T IO N para los botones de Next X SC(X) = ""
comandos com o para las etiquetas, algunas etiquetas tienen además en la N(0).SetFocus Next X
propiedad B O R D E R S T Y L E el v a lo r 1-S ing le Fixed. End Sub End Sub

170 ^ G ru po E d it o r ia l Megabyte < ^ ¡||¡|| 171


/

VISUAL BASIC como debe ser.. CAPITULO III: Elementos de la


In s tru c c io n e s d e l B o tó n S U M A L A S C O L U M N A S Instrucciones: Botón COLUMNA 3 Instrucciones:Botón COLUMNA 4
Prívate Sub Command7_Click() Prívate Sub Command8_Click()
P rivate Sub C om m and3_C lick()
‘Suma sólo la columna 3 ‘Suma sólo la columna 4
‘Llam a al procedim iento "PASAR"
S T -0 ST= 0
PASAR
PASAR PASAR
‘SUM A L A S C O LU M N A S D E L A R R AY
Command2_Click Command2_Click
F or CO L = 1 To 4
For X = lT o 4 F orX = lT o 4
SU M A(C O L) = 0
S T = S T + A(X, 3) ST = ST + A(X, 4)
F or FIL = 1 To 4
NextX NextX
SU M A (C O L) = SU M A (C O L) + A (F IL, COL)
SC(3) = ST SC(4) = ST
N ext FIL
End Sub End Sub
N ext COL
F o r X = 1 To 4 Instrucciones del Botón FILA 1 Instrucciones del Botón FILA 2
SC (X ) = SU M A (X ) Prívate Sub Command9_Click() Prívate Sub Commandl 0_Click()
N e x tX ‘Suma sólo la fila 1 ‘Suma sólo la fila 2
E nd Sub ST = 0 ST = 0
PASAR PASAR
In s tru c c io n e s d e l B o tó n S U M A L A S F IL A S Command2_Click Command2_Click
Prívate Sub C om m and4_C lick() F orX = I To 4 For X = 1 To 4
S T = S T + A (l, X) ST = ST + A(2, X)
‘Llam a al p rocedim iento "PASAR"
NextX NextX
PASAR
SF( 1) = ST SF(2) = ST
‘SUM A L A S F ILA S D E L A R R A Y
End Sub End Sub
F or F IL = I To 4
SU M A (F IL) = 0 Instrucciones del Botón FILA 3 Instrucciones del Botón FILA 4
For CO L = 1 To 4 Prívate Sub Commandl 1_Click() Prívate Sub Commandl 2_Clíck()
SU M A (F IL) = SU M A (F IL ) + A(FIL, CO L) ‘Suma sólo la fila 3 ‘Suma sólo la fila 4
N ext COL ST = 0 ST = 0
PASAR PASAR
N ext FIL
Commcind2_Click Command2_Clíck
F or X = 1 To 4
For X = IT o 4 For X = 1 To 4
SF(X) = SU M A(X)
ST = ST + A(3, X) ST = ST + A(4, X)
N e x tX
NextX NextX
E nd Sub SF(3) = ST SF(4) = ST
Instrucciones: Botón COLUMNA 1 Instrucciones: Botón COLUMNA 2 End Sub End Sub
Prívate Sub Command5_Click() Prívate Sub Command6_Click()
‘Suma sólo la columna 1 ‘Suma sólo la columna 2 Instruc.:Botón DIAGONAL 1(\) Instruc.: Botón DIAGONAL 2 (/)
ST = 0 PASAR Prívate Sub Commandl 3_Click() Prívate Sub Commandl4_Click()
PASAR ‘Suma la diagonal 1 ( \ ) ‘Suma la diagonal 2 ( / )
ST = 0
PASAR PASAR
Command2_Click Command2_Click
ST = 0 ST = 0
F orX = 1 To 4 F orX = 1 To 4
F orX = 1 To 4 For X = 1 To 4
ST = ST + A(X, 1) ST = ST + A(X, 2) ST = ST + A(X, X) ST = ST + A(X, 5 - X)
NextX NextX NextX NextX
S C (1 ) = ST SC(2) = ST Labe! 18 = ST Lab el 19 = ST
End Sub End Sub Eiul Sub End Sub

G ru p o E d ito ria l M egabyte^ 173


VISUAL BASIC como debe ser... CAPÍTULO III: Elementos de la Programación
APLICACIÓN DESARROLLADA N° 21 PASO N° 2: Asignar las propiedades a los controles.
La siguiente a plicación perm ite re a liza r operaciones con arrays com o sumar A las etiquetas N° 1, 2 y 3, al Fram e y a los C om m ands, asígneles en su
dos arrays, restar, m u ltip lic a r, etc. C a p tio n los mensajes com o en el eje m p lo.
m. O P E R A C IO N E S C O N A R R A Y S PASO N° 3: Escribir las instrucciones para los controles.
AR RAY " A " ARRAY "B " D efinir las variables a nivel de Form ulario
[a p¡ Í5 [5 [9 pr Dim X, F, C A s Byte
Dim AA( 1 To 3, 1 To 3) A s Inte ge r
I3 |7 |-4 |7 1 10
Dim AB( ¡ T o 3, 1 To 3) A s Integer
Io |-5 |-1
I9 3 1
Dim AR( I To 3, ¡ To 3) A s Single
Transpuesta | Transpuesta |
Instrucciones del Form_Activate.
R E SU LTADO Prívate Sub Form_Activate()
Borrar | Rem Limpian el contenido de los arrays
I 13 I 8 1 4 For X = OTo 8
Llenar j
I 10 1 8 1 6 A(X) = »"
Salir j
1 9 1 -2 i ° B(X) = ""
OPERACIONES : R(X) = ""
N extX
i ¿ urna i| R e sta J M ultip lic a [ d iv id e | 2A * 3B A(0).SetFocus
End Sub
Instrucciones del Botón LLE N A R .
PASO N° 1: Dibujar los controles Prívate Sub Command9_Click() •
D ib u je los co ntrole s com o de m uestran en el ejemplo. Para el 1er. A rra y, Rem Llenan los dos Arrays con valores entre -5 y ¡0.
d ib u je la le ra ., caja de texto y asígnele el nombre (Ñam e) A, luego cópiela Randomize
F o rX = OTo 8
hasta tener 9 (desde A (0 ) hasta A ( 8)). A l 2do. Array, asígnele el nom bre B A(X) = Int((10 - (-5) + l ) * R n d + (-5))
y al 3er.array (etiquetas) asígnele el nom bre R. B(X) = Int((10 - (-5) + ¡) * Rnd + (-5))
N e x tX
End Sub
Labell • ■• Label2 Instrucciones del Botón BO RRAR.
|T e x t l J T extl |Text1
Prívate Sub Command8_Click()
jTextl T extl Textl
Form_Activate
|T extl T extl Textl jT ex tl |Text1~ |T extl
End Sub
JT extl Textl Textl JTextl jT extl jTextl

Commandl - • Command2 I • Transpuesta para el Array A. Transpuesta para el Array B.


Private Sub Command¡_Click() Prívate Sub Com mandl_Click()
Label3
Rem Traspuesta del array A Rem Traspuesta del array B
Label4 Label4 Label4 Command8 PASAR PASAR
Label4 Label4 Label4 Commarid9 j For F - ¡T o 3 For F = 1 To 3
For C = 1 To 3 For C - ¡ To 3
Label4 Label4 Label4 Commandl 0
AR(C, F) = AA(F, C) AR(C, F) = AB(F, C)
Framel Next C Next C
Commands Command4 Commands Commands Command7 Next F Next F
MOSTRAR MOSTRAR
End Sub End Sub
174 G ru po E d it o r ia l M eg a b y te^
Ufo VISUAL BASIC como debe se r.. . CAPITULO III: Elementos de la Programación
Instrucciones del Botón SUMAR. Instrucciones del Botón RESTAR. Instrucciones del Botón DIVIDIR.
Prívate Sub Command3_Click() Prívate Sub CommandA_Click() Prívate Sub Command6_Click()
Rem Suma los valores. Rem Resta los valores. Rem Divide los valores de los Arrays
PASAR PASAR PASAR
For F = 1 To 3
For F ■=1 To3 For F - 1 To 3
For C = 1 To 3
For C = 1 To 3 For C = 1 To 3 I f AB(F, C) o O Then
AR(F,C)=AA(F,C)+AB(F,C) AR(F,C)=AA(F,C)-AB(F,C) AR(F, C) = AA(F, C)/AB(F, C)
Next C Next C End If
Next F Next F Next C
MOSTRAR MOSTRAR Next F
End Sub End Sub Rem Muestra los resultados con 2 decimales
Dim N As Byte
Instrucciones del Botón MULTIPLICAR. For F = 1 To 3
Prívate Sub Command5_Click() For C = 1 To 3
Rem Multiplicación los valores de los Arrays R(N) = Format(AR(F, C), "##0.00")
Dim Y As Byte N = N+ 1
Next C ■
PASAR
Next F
For F - 1 To 3 End Sub
For C - 1 To 3
AR(F, C) = 0 Instrucciones del PROCEDIMIENTO PASAR.
For Y = 1 To 3 Sub PASAR()
AR(F, C) = AR(F, C) + (AA(F Y) * AB( Y, C)) 'Pasan los elementos desde los Text al Array Bidimesional.
Next Y Dim N As Byte
For F = 1 To 3
Next C
F orC = 1 To 3
Next F AA(F, C) = A(N)
MOSTRAR AB(F, O = B(N)
End Sub N = N+ 1
Next C
Instrucciones del Botón 2A + 3B (Multiplicación Escalar). Next F
Prívate Sub Command7_Click() End Sub
Rem Multiplicación Escalar 2A.3B
PASAR Instrucciones del Botón MOSTRAR.
For F = 1 To 3 'Muestran los resultados en el array R (etiquetas).
F orC = 1 To 3 Sub MOSTRARO
Dim N As Byte
AR(F, C) = AA(F, C )* 2 + AB(F, C) * 3 For F = 1 To 3
Next C For C = 1 To 3
Next F R(N) = AR(F, C)
MOSTRAR N = N+ I
End Sub Next C
Next F
End Sub
176 G ru po E d it o r ia l Megabyte 177 «
A S if r VISUAL BASIC como debe se r.. . CAPÍTULO III: Elementos de la Programación
ERRORES MAS COMUNES
PREG UNTAS DE REPASO Ng 03
S i a l e je c u ta r o d e sa rro lla r una a p lic a c ió n se m u e stra un m e n sa je de
error, trate d e so lu c io n a rlo Ud., m ism o, d e esa m a n era es p o c o p ro b a b le 1. Por defecto una variab le es de tip o :
c¡ue lo vu elva a com eter. 2. Escriba la sintaxis de la fu n c ió n M sgb ox.
3. Por qué es im portante Setfocus.
Microsoft Visual Basic 4. ¿Qué debe hacer para que no se produzca un e rro r cuando se quiere
u tiliz a r una variable no declarada o d efin id a?
Compile error: Variable no definida. Está usando una 5. E xp liq u e los atributos de una variable.
variable sin definirla. Defina la variable o 6. E xp liq u e las características de una variable, Loca l, a N iv e l de F orm ulario
Variable not defined
borre O PTIO N E X P L IC IT del objeto y G lobal.
GENERAL. 7. ¿Cóm o se activa la ventana para declarar variables a N iv e l de M ódulo?
Aceptar Ayuda
8. ¿Cóm o se declara la va riab le A de tip o In te ge r y de ám bito G lo ba l.
9. U na variable num érica p o r defecto tiene el v a lo r .....y la de tip o cadena
10. ¿C óm o se borra el contenido de una caja de textos?
Microsoft Visual Basic 11. ¿ Q u é v e n ta n a se v is u a liz a c o n la s ig u ie n te in s tr u c c ió n ?
R = M S G B O X (“ A C C E S O D E N E G A D O ” ,2 l , ” L O S IE N T O ” )
Compile error:
Se esperaba separador de lista o 12. De la pregunta a nte rio r ¿Qué v a lo r tom a la variable R si el usuario
* Expected: list separator o r ) paréntesis. hace c lic k en Cancelar?
Verifique que ha cerrado paréntesis. 13. ¿ Q u é v e n ta n a se v is u a liz a c o n la s ig u ie n te in s tr u c c ió n ?
T = M S G B O X (“ F IN A L IZ A L A A P L IC A C IO N ” ,3 6,’’R E S P O N D A ” )
[ Aceptar ] Ayuda
14. ¿Qué ventana se v is u a liz a con la siguiente in stru cció n ? M S G B O X
“ B ie nve nid o al Sistem a” .
15. E scriba los Iconos y Botones con su respectivo v a lo r que podem os
Microsoft Visual Basic visu a liza r en el M sgb ox.
16. ¿Qué valores puede d e v o lv e r el M s g b o x y a qué botón pertenece?
Compile error: Se esperaba THEN. 17. ¿Qué fu n c ió n cum ple: C H R (13 )?
Probablemente se o lv id o de escribir 18. ¿Qué es una palabra reservada y con qué palabra reservada se define
Expected: Then or GoTo
T H E N después de la condición en la una variable y qué fu n c ió n cum ple?
instrucción IF. 19. ¿Si en la ventana de declaración de variables se tiene la instru cció n
Aceptar jl Avuda O P T IO N E X P L IC IT qué s ig n ifica ?
20 ¿Cuantos tipos de p rocedim ientos existente?

— I IM P O R T A N T E
Run-time error '13': Con los conocim ientos adquiridos hasta ahora ya está en condiciones de
Type mismatch desarrollar m uchas Aplicaciones.
Error de Tipo
Los Datos o variables
son de diferente tipo.

End Debug Help

178 G ru p o E d ito r ia l Megabyte 179


CAPITULO IV

SISTEMA
DE
VENTAS

Castañeda O 54:42 AM

HORA
mm
: |1 1 :1 8 :2 5 PM

Salir
'v'rrr-—•

MEJORANDO EL ASPECTO
DE LOS FORMULARIOS
f
M A R C O (F R A M E ):

IIB p

Es un c o n tro l que se u tiliz a para m e jo ra r el aspecto de un fo rm u la rio y para


agrupar controles de tal manera que se puedan m anejar com o un sólo c o n tro l.
Se puede d ib u ja r sobre controles que están en el fo rm u la rio , los
cuales quedarán ocultos. Pulse las teclas < C T R L > + < K > para restaurar o
v is u a liz a r los controles ocultados. Esto no sucede con las etiquetas, por lo
que se recom ienda d ib u ja r p rim ero el F R A M E y luego las etiquetas (Label).

P R IN C IP A LE S PRO PIED AD ES D E UN F R A M E :
ÑAME
Perm ite asignarle un nom bre. Por defecto el nom bre es F ra m e l, Fram e2,
Fram e3 etc. Según el núm ero de m arcos que se d ib u je n en el fo rm u la rio .
BAC KC O LO R
Selecciona un c o lo r de fo n d o para el m arco.
BO R D ER STYLE
S elecciona el e stilo del borde.
C A P T IO N
A sig n a un T ítu lo al m arco.
EN ABLED
P erm ite que el m arco se encuentre a c tiv o o no.
FONT
Para cam biar el tip o , tam año y e stilo de letra.
FO RECO LO R
A sig na un c o lo r de las letra.
M O U S E P O IN T E R
Para seleccionar el tip o de puntero de mouse.
V IS IB L E
Para in d ic a r si se debe m ostrar el m arco.

NOTA :
Para agrupar varios controles en un m arco, p rim ero dibuje el m arco y encim a los
controles. C ualquier p ro p ied a d que le cam bia al m arco será tam bién pa ra los
controles que se encuentran dentro de él.

I w m ■ « m m
VISUAL BASIC como debe ser.. . -
E je m p lo : F IG U R A S (S H A P E ):
U d. puede desarrollar la siguiente a p lica ció n usando marcos.
0
a .. M A T R I C U L A D E A L U M N O S

-D A T O S PERSONALES Es un control que se u tiliza para m ejorar el aspecto de un fo rm u la rio dibujando


Nombre
fig u ra s de d iferen te form a.
Dirección
T eléfono j"

P R IN C IP A L E S P R O P IE D A D E S DE UN SHAPE:

ÑAME
Perm ite asignarle un nom bre. Por defecto el nom bre es S h a p e l, Shape2,
Shape3 etc. Según el núm ero de fig u ra s que se d ib u je n en el fo rm u la rio .
BAC KSTYLE
A S IG N A N D O CO LO RES
Selecciona el e stilo del fo n d o para la fig ura.
Q BCO LO R :
Es una fu n c ió n que p e rm ite asignar colores. BO RDERCO LO R
Su sintaxis es QBCOLOR(Valor). E l v a lo r es un num ero entre 0 y 15 que A sig n a un c o lo r para el borde de la fig u ra .
representa el v a lo r a asignar:
BO RD ERSTYLE
COLOR OSCURO CLARO
Negro 0 8 A s ig n a el estilo del borde.
Azul 1 9 B O R D E R W ID T H
Verde 2 10
Aguamarina 3 11 Para cam biar el ancho del borde.
Ro jo 4 12
Fucsia 5 13 F IL L C O L O R
Amarillo 6 14 A s ig n a el c o lo r que rellen a la fig u ra .
Blanco 7 15
F IL L S T Y L E
L a siguiente in s tru c c ió n asigna el c o lo r azul claro al fo rm u la rio N ° 1:
F orm l.B ackC olor = QBColor(9) Para in d ic a r el e stilo del llenado de la fig u ra .

RGB: SHAPE
Es una fu n c ió n que p e rm ite asignar un c o lo r que se obtiene de los colores Para seleccionar el tip o de la fig u ra que deseamos
R ojo , Verde y A z u l.
Su sintaxis es: R G B (Valorl, Valor2, Valor3). Los tres valores pueden ser I Shape lo - RectanaleHfföSS*‘
un núm ero entre 0 y 255 que representan la intensidad asignada a los colores 0 - Rectangle
R ojo, Verde y A z u l para obtener el c o lo r deseado. E l V a lo r l representa la 1 - Square
intensidad asignada al c o lo r R ojo, el V alor2 representa la intensidad asignada 2 - Oval
3 - Circle
al c o lo r Verde y el va lo r3 la intensidad para el c o lo r A z u l. 4 - Rounded Rectangle
L a s ig u ie n te in s tru c c ió n a sig na un c o lo r rosa do al fo r m u la r io N ° l: 5 - Rounded Square
F orm l.B ackC olor = RGB(255, 0, 190)
184 G ru p o E d ito r ia l Megabyte
MI
W t& m VISUAL BASIC como debe ser.. .
___________________ ____ o

LINEA (LINE): P IC T U R E B O X ( C A J A D E IM A G E N ) :

Es un control que se u tiliza para m ejorar el aspecto de un form u la rio dibujando


líneas. Es un control que se u tiliz a para m ejorar el aspecto de un fo rm u la rio
insertando dibujos o gráficos. Estos gráficos pueden ser M a p a de B its , Iconos
o M e ta rc h iv o s . Los g rá fic o s que se m uestran en este c o n tro l tom an
P R IN C IP A LE S PRO PIED AD ES D E L CO NTROL LIN E :
automáticamente el mismo tamaño del control.
Los archivos m apa de b its , son imágenes representadas por pixeles.
ÑAME
Norm almente estos archivos tienen la extensión *.BM P.
P erm ite asignarle un nom bre. P or defecto el nom bre es L in e l, L in e 2 , L in e 3
Los Iconos son gráficos que se u tiliz a n norm alm ente para representar
etc. Según el núm ero de líneas que se d ib u je n en el fo rm u la rio .
aplicaciones minimizadas en M ic ro s o ft W indow s. Estos archivos tienen la
BORDERCOLOR extensión *.IC O .
A sig n a un c o lo r para el borde de la línea. Los M e ta rc h iv o s representan gráficos como líneas, círculos, etc., como
BORDERSTYLE pixeles. Estos archivos normalmente tienen la extensión *.W M F . El este control
también puede mostrar archivos M etarchivos mejorados con la extensión * .JPG
A s ig n a el e stilo del borde.
y *.G IF.
BORDERWIDTH Ud., p u ed e utilizar cualquiera de los g ráficos que estén instalados en su
Para ca m b ia r el ancho del borde. com putadora o crear sus pro p io s gráficos utilizando p o r ejem plo el Paintbrush.
DRAWMODE PRINCIPALES PROPIEDADES DE UN PICTURE BOX:
A sig n a el m odo de la línea. ÑAME
VISIBLE P erm ite asignarle un nom bre. Por defecto el nom bre es P ic tu re l, Picture2,
Para in d ic a r si se desea visu a liz a r la fig u ra . Picture3, etc.
APPEARANCE
Ejemplo : Para seleccionar la apariencia del co ntrol.
El siguiente fo rm u la rio presenta algunos ejem plos de figuras y líneas que se AUTOSIZE
pueden d ib u ja r en una aplicación. Para in d ic a r si el g rá fico debe visualizarse con su tamaño o rig in a l o según el
tam año del P ictureB ox.
O
BAC KC O LO R
Selecciona un c o lo r para el fondo.
BORDERSTYLE
A sig n a el estilo del borde.
DRAWSTYLE
Asigna el estilo de línea de los círculos y cuadros creados con los métodos gráficos.
DRAW W IDTH
¡¡E tiq ue ta d e n tro de la Ftguid
\\ Asigna el ancho de línea de los círculos y cuadros creados con los métodos gráficos.
Y\
\ \
• .......
EN ABLED
A c tiv a o desactiva el co ntrol.

186 G ru p o E d ito r ia l M eg a b y te^


Ufo VISUAL BASIC como debe ser.
FILLCOLOR ■
METODOS G RÁFICO S
A s ig n a el c o lo r que se usado para lle n a r form as, tam bién se usa para llen ar
c írc u lo s y cuadros creados con los m étodos g ráficos C irc le y L in e . Son instrucciones que operan sobre un objeto com o un Form , P ictureBox,
FILLSTYLE P rin te r y efectúa operaciones de d ib u jo en tie m p o de ejecución com o una
A s ig n a el e stilo de re llen o para los controles Shape, así com o los círculos y
a nim a ción o sim ulación. L os m étodos g rá ficos son:
los cuadros creados con los m étodos g rá ficos C irc le y L in e .
FONTTRANSPARENT CIRCLE
In d ic a si el texto y los g ráficos de fo n d o de un objeto F orm o Printer, o de un
P erm ite d ib u ja r círculos, una elipses o arcos. S intaxis:
c o n tro l P ictu reB o x, se m uestran en el espacio situado entre los caracteres.
FORECOLOR C irc le (x ,y ), radio, c o lo r
A s ig n a el c o lo r para los círculos y los cuadros creados con los métodos Si se o m ite el c o lo r se tom a el de la p ropiedad F orecolor. Los argum entos
g rá fic o s C irc le y L in e . Para que se a ctive el c o lo r asignado, la propiedad X ,Y es el punto central del círcu lo . Por e je m p lo, la siguiente instru cció n
D ra w m o d e debe tener el v a lo r 13 - C o p y Pen d ib u ja un círcu lo en un c o n tro l P ic tu re B o x de c o lo r ro jo .
PICTURE
P ic tu re l.C irc le (1 0 0 0 ,4 0 0 ), 250, R G B (2 5 5 ,0 ,0 )
S elecciona el g rá fico o d ib u jo que se desea insertar en el fo rm u la rio . U d.
debe buscar el d ire c to rio donde se encuentran estos gráficos. Las características del c írc u lo dependen de los valores asignados a las pro­
SCALEMODE piedades: D raw style, F illc o lo r, etc.
In d ic a m ediante un v a lo r la unidad de m edida de las coordenadas del control. Para crear elipses o arcos u tilic e la sintaxis:
l= T w ip , 2 = P u n to s , 3 = P ix e l, 4 = C a rá c te r, 5 = P u lg a d a , 6 = M ilí m e tr o , C irc le (x ,y ), radio, color, in ic io , fin , aspecto
7=centím etro. In ic io y F in , se u tiliz a n para e spe cifica r en radianes las posiciones de in ic io
SCALEWIDTH y de fin del arco. E l in te rv a lo para ambos es de -2 p i radianes a 2 p i radianes.
In d ica el va lo r m áxim o del ancho de un control cuando se u tiliz a instrucciones E l v a lo r predeterm inado para in ic io es 0 radianes; el v a lo r predeterm inado
para g rá ficos.
para fin es 2 * pi radianes.
SCALEHEIGHT A specto, es un v a lo r de pre cisió n sim p le que in d ic a la relació n de aspecto
Indica el valor m áxim o de la altura de un control cuando se u tiliza instrucciones
del círculo. E l valor predeterminado es 1.0, lo que produce un círculo perfecto.
para g rá ficos.
VISIBLE
Para in d ic a r si se desea visu a liza r el d ib u jo o g rá fico .
LINE
Perm ite d ib u ja r líneas o rectángulos. S intaxis:
Ejemplo de una aplicación con el control PictureBox. Line (xl, yl) - (x2, y2), [color], [B][F]
n r m — n i mi 11« ■ miman m i n i n a ...........
i- Información dei A lu m n o ...... -...................................
X I y Y l , es el punto in ic ia l de la línea o rectángulo.
Alumno j
X 2 y Y 2 , es el punto fin a l de la línea o rectángulo.
I Curso !

N ota N* 01 |
B Es opcional. Si se in c lu y e , hace que se d ib u je un cuadro usando las
Nota N 9 02 I coordenadas para espe cifica r las esquinas opuestas del cuadro.
Promedio F Es opcional. Si se u tiliza la opción B, la opción F especifica que el
Observación
cuadro se llena con el m ism o co lo r u tiliza do para d ib uja r el cuadro. N o puede
Opc/ones Dispan/bfes: u tiliza r F sin B. Si se u tiliza B sin F, el cuadro se llena con los valores actuales de
N uevo Calcular el Promedio Salir
F illC o lo r y F illS tyle. E l valor predeterminado para F illS tyle es transparente.

188 G ru p o E d ito r ia l M egabyte^


é B B fa - VISUAL BASIC como debe ser.. .
L a siguiente in stru cció n d ib u ja una línea en el c o n tro l P ictu reB o x. P A S O N ° 1: D ib u ja r los c o n tro le s :
P ic tu r e l.L in e (100, I0 0 )-(8 0 0 , 1000) D ib u je 3 P ictu reB o x, un botón de com andos y un Tim er.
¡ i. Formi
L a siguiente in stru cció n d ib u ja un rectángulo en el c o n tro l P ictu re B o x.
P ic tu r e l.L in e (100, 100 )-(8 0 0 , 1000), , B

E l c o lo r de los g ráficos que se d ib u ja n en el eje m p lo, depende de la p ro p ie ­


dad F ore color porque no se a especificado el color.

C LS
B o rra el texto o los g rá fico s d ib u ja d o en el fo rm u la rio o en el c o n tro l
Command!
P ictu reB o x.
P or ejem plo la siguiente in stru cció n borra lo d ib u ja d o en el p rim e r c o n tro l
P ictu reB o x.
P ic tu r e l. c ls P A S O N ° 2: E s c rib ir las instrucciones para los controles.

P R IN T D ebe crear 3 p rocedim ientos para que cada uno de ellos d ib u je círculos,
M uestra un texto en un fo rm u la rio o en el co n tro l P ictu reB o x. líneas y rectángulos.
Por e jem plo la siguiente instru cció n m uestra el texto “ D IB U J A N D O ” en el
p rim e r c o n tro l P ictureB ox. Rem Definición de las variables
Public maxcolumna, maxfila, color As Integer
P ic tu r e l.P r in t " D IB U J A N D O ” Public coll, col2, fill, fil2 As Integer
APLICACIÓN DESARROLLADA N° 22 Sub lineas()
En la siguiente a plicación se m uestra dentro de tres controles P icturebox maxcolumna = Picture2.ScaleWidth
círculos, líneas y rectángulos con un tam año, c o lo r y p o sició n al azar. maxfila = Picture2.ScaleHeight
coll = In t ((maxcolumna - 1 + 1 ) * Rnd + 1)
Métodos Gráficos fill = Int((maxfila - 1 + 1 ) * Rnd + 1)
col2 = In t ((maxcolumna - 1 + 1 ) * Rnd + 1)
fil2 = Int((maxfila - 1 + 1 ) * Rnd + 1)
color = I n t ((14 - 1 + 1) * Rnd + 1)
Picture2.ForeColor = QBColor(color)
Picture2.Line (coll, fill)-(col2, fil2)
End Sub

P r i v a t e S u b T i m e r l _ T i m e r () P r i v a t e Su b F orm _L oad()
c írc u lo s R a nd om ize
lin e a s T i m e r l . I n t e r v a l = 100
Finalizar re c tá n g u lo s End Sub
End Sub

G ru p o E d ito ria l Megabyte ~4 l p li| 191


éS iñ k > VISUAL BASIC como debe se r...
Sub círculos()
Dim columna, fila, margder, margsup, margderm As BUSCANDO G RAFICO S EN LA COMPUTADORA
Integer
Dim margsupm, maxradioder, maxradiosup, radio As
Integer
maxcolumna = Picturel.ScaleWidth N orm alm ente los gráficos que Ud. puede insertar se encuentran en la carpeta
maxfila = Picturel.ScaleHeight G raphics que se encuentra dentro de V b . Tam bién puede insertar gráficos
columna = I nt((maxcolumna - 1 + 1 ) * Rnd + 1) del M ic ro s o ft O ffic e que norm alm ente se encuentran en la siguiente ruta:
fila = Int((maxfila - 1 + 1 ) * Rnd + 1)
C :\A rc h iv o d e P m g r g m a s \M ic r o s o ft O ffic e \C lip a rt\P o p u la r
margder = Picturel.ScaleWidth 'máximo ancho
margsup = Picturel.ScaleHeight ' máxima altura
Reí7i Obtiene el punto central del. control picture Si desea buscar en el disco de su com putadora todos los grá ficos que puede
margderm = Picturel.ScaleWidth / 2 insertar, siga los siguientes pasos:
margsupm = Picturel.ScaleHeight / 2 Haga un C lic k en el B o tó n In ic io de la barra de
color = I n t ((14 - 1 + 1 ) * Rnd + 1) 'Color al azar á l ~É1 Programas ►
tareas del W in d o w s y e lija la opción Buscar y
If columna>margderm Then ----- 3 Documentos ►
maxradioder=margder-columna luego A rc h iv o s o Carpetas.
El se Configuración ►
maxradioder = columna m
End If \ Buscar ►|
Archivos o carpetas...

If fila > margsupm Then PC...

maxradiosup = margsup - fila 1 ^


Ayuda ^ Mediante Miciosoft Outlook...
El se
maxradiosup = fila Ejecutar...

End If
If maxradioder > maxradiosup Then íy j Suspender
radio = maxradiosup
El se ^ jj Apagar el sistema...
radio = maxradioder
End If |i;ÍH jn ic iq i
Picturel.ForeColor = QBColor(color)
Picturel.Circle (columna, fila), radio
If (Int(Timer) Mod 10) = O Then 2. Visualizará la siguiente ventana:
Picturel.Cls
Picture2.Cls m Buscai: todos los archivos
A rc h iv o E d ició n Ver O p c io n e s A yuda
Picture3.Cls
Randomize N om bre y u b ic a c ió n | F e c h a de m o difica ció n ] A v a n z a d a s j
End If B uscar ahora |
End Sub Nom bre:

Sub rectángulos() B uscar en: |M i PC -w j Examinar., N u e v a b ú sq u e da


maxcolumna - Picture3.ScaleWidth
maxfila = Picture3.ScaleHeight in c lu ir subcarpetas
coll = In t ((maxcolumna - 1 + 1 ) * Rnd + 1) A
fill = Int((maxfila - 1 + 1 ) * Rnd + 1)
col2 = In t ((maxcolumna - 1 + 1 ) * Rnd + 1)
fil2 = In t ((maxfila - 1 + 1 ) * Rnd + 1)
color = I n t ((14 - 1 + 1) * Rnd + 1)
Picture3.ForeColor = QBColor(color) En la caja de textos N O M B R E : escriba un asterisco ( * ) y luego un punto
Picture3.Line (coll, fill)- (col2, fil2), , B seguido de la extensión del tip o de a rc h iv o g rá fic o que desea buscar.
End Sub
192 G ru p o E d ito ria l Megabyte <
H- VISUAL BASIC como debe se r..
Por ejem plo: Para buscar todos los archivos gráficos que tengan la extensión I M A G E ( IM A G E N ) :
BM P, se debe e scribir: *.B M P
Si desea buscar varios tipos de archivos gráficos a la vez, indíquelos separados
p or un espacio en blanco.
Por ejem plo: para buscar todos los g rá fico s con la extensión B M P , IC O y Este co ntrol perm ite m ostrar g rá fico s en un fo rm u la rio , s im ila r al control
W M F , debe e scribir: * .B M P *.IC O * .W M F P ictureB ox. Se diferen cian porque el c o n tro l Im agen no tiene ninguno de
En la caja de textos B U S C A R EN : seleccione M I PC para que los archivos los m étodos g ráficos n i todas las propiedades y otros m étodos que el control
g rá ficos se busquen en todos los discos de su com putadora. Así: P ictu reB o x tiene.

A rc h iv o E d ic ió n Ver O p c io n e s Ayüda E l tam año del g rá fic o que se alm acena en este c o n tro l no depende del
N o m b re y u b ic a c ió n j F e c h a d e m o d ific a c ió n | A v a n z a d a s j tam año del co ntrol, si no que u tiliz a su p ro p io tamaño. La propiedad Stretch
B u sca r a h o ra I
determ ina si el tam año del g rá fic o depende del tam año del co ntrol.
N om bre: |* .B M P " ICO X.W M P --------------- 3
N u e va búsqueda
B u sca r en: |M i P C E xam inar.. T IM E R (R E L O J ):
W in c lu ir s u b ca rp e ta sj
A

Es un c o n tro l que se u tiliz a para poder ejecutar instrucciones cada cierta


3. H aga c lic k en el botón B U S C A R A H O R A para que em piece la bús­
cantidad de segundos. Puede ayudar a m e jo ra r el aspecto de un fo rm u la rio .
queda de todos los archivos que tienen las extensiones indicadas (ar­
ch ivo s gráficos). P or cada a rch ivo que se encuentra se v is u a liza la ruta
exacta donde está ubicado para que al u tiliz a r la propiedad P IC T U R E PRIN C IP ALES PRO PIED AD ES D E U N TIM ER:
U d., pueda buscar la carpeta y u b ica rlo s rápidam ente.
H B uscar: a rchiv o s c o n nom bre “ .B M P “ .ICO " W M P |q»x i ÑAME
¿Archivo Edición Ver Qpciones Ay¿jd»

Nombre y ubicación j Fecha de modificación ] Avanzadas j


I Buscar ahora
Perm ite asignarle un nom bre. Por defecto el nom bre es T im e rl, T im e r2 ,
Nombre |- BMP “ ICG “ WMP I T im e r3 etc. Según el núm ero de controles que se d ib uje n en el fo rm u la rio .
Buscar jMiPC
~Ei ¿•Jueva búsqueda I

EN ABLED
fv? incluir subcarpetas

Perm ite que el c o n tro l se encuentre a c tiv o o no.


I En carpeta | Tama... | Tipo Modificado ■*- I
Notel 6. ico C:\Archivos de prograrrtaSDevStudioWBSGraphi... 2KB Icono 20/02/97 12:00 AM IN T E R V A L
C:\Archivos de programaSDevStudioWBSGraphi... 2KB Icono 20/02/97 12:00 AM
Notel 7.ico
C:\Archivos de prograrna\DevStud¡o\VB\Graphi... 2KB Icono 20/02/97 12:00 AM -----1
Notel 8.ico
PenOI .ico C:\Archivos de programa\DevStudio\VB\Graphi... 2KB Icono 20/02/97 12:00 AM In dica el tie m p o en que se deben ejecutar las instrucciones. E l v a lo r 1000
Pen02.ico C:\Archivos de programa\DevStudioW/B\.Graphi .. 2KB Icono 20/02/97 12:00 AM
^*Pen03.ico C:VArchivos de programa\DevStudio\VB\Graphi 2KB Icono 20/02/97 12:00 AM —| in d ica cada segundo.
« í
161 6 archivo(s) encontrado(s) Las instrucciones que queremos que se ejecuten cada cierto tiem po se deben
NOTA: e s c rib ir en el E v e n to T im e r de este co n tro l.
• Para visualizar la ruta com pleta de cada archivo am plíe la colum na En Carpeta.
• A rchivos que se m uestren depende de los que tenga instalados en su com putadora.
,n ,
194 G ru p o E d ito ria l M egab yte^
T

VISUAL BASIC como debe se r.. < > CAPITULO IV: Mejorando el Aspecto de los Formularios ^
APLICACIÓN DESARROLLADA N° 23 E l g rá fic o del c o n tro l PICTUREBOX se lla m a DINERO.WMF, que
En la siguiente aplicación se u tiliz a n funciones tratadas anteriorm ente y norm alm ente se encuentra en la carpeta: A rch iv o s d e P rogram aSM icrosoft
ejem plos de cóm o m ejora r el aspecto del fo rm u la rio : O ffic e \C lip a r t\P o p u la r
Búsquelos, y si no los encuentra p ractique insertando otros gráficos.
FECHA : J21 -07-1S A las etiquetas donde se m uestran la fecha y hora no les asigne ninguna
- V e n ia d e P ro d u c to s :
Nom bre del Producto JJ- propiedad, porque se visua liza n cuando se ejecuta el program a.
Precio Unitario E l c o n tro l Timer lo puede d ib u ja r en cu a lq u ie r parte del fo rm u la rio porque
C antidad T
cuando ejecuta la a plicación no se v is u a liz a y tiene un solo tamaño.

I.G.V. J”
PASO N° 03: E s c rib ir
las instrucciones de cada co ntrol.
Total I- Instrucciones Form Activate Instrucciones del B. Calcular
Lo que puede hacer : —
Prívate Sub Form_Acüvate() Prívate Sub Command2_Click()
^ I Textl = "" Dim ST, IGV, TPAs Single
J ju e v o ] fíe s u lta d o s Text2 = "" ST = Val(Text2) * Val(Text3)
Text3 = "" IGV= S T * 18 /1 0 0
L a b e lll = "" TP = S T + IG V
PASO N° 1: DIBUJAR LOS CONTROLES: L abell2 = "" Labell 1 =Format(ST, "###,##0.00")
Labell3 = "" Labell2=Format(IGV, "###,##0.00")
Labell Label2 Label3 Label4 Textl.SetFocus Labell3=Format(TP, "###,##0.00")
■Framel----------------
End Sub End Sub
Label5 (Textl Instrucciones del b o t ó n Nuevo.
Label6 |jext2 Private Sub Commandl_Click()
© Form_Activa te
Label7 | t ext3 End Sub
Instrucciones del b o t ó n Salir
Label8 Labell 1
Prívate Sub Command3_Click()
Label9 Labell 2
Dim R As Integer
Labell 0 Labell 3
R = MsgBox("Está seguro de salir", 36, "Cuidado")
-Frame2------------
If R = 6 Then End
Command! Command2 Command3
End Sub
Instrucciones del Evento L O A D : Visualizan la fecha del sistema en la etiqueta 2, y la
palabra VENTAS en el Caption del formulario y activan las instrucciones del control TIMER.
PASO N° 02: ASIGNAR LAS PROPIEDADES. P r í v a t e S ub F orm _L oad()
Asígnele las propiedades a cada uno de los controles que se muestran en el L a b e l2 = F o rm a t(D a te , "d d -m m -yyyy")
F o r m l . C a p t i o n = "V ENTAS" + S p a c e ( 5 0 )
form ulario, de tal manera que tenga un aspecto sim ila r a la aplicación planteada.
T im e r1 . I n t e r v a l = 100
NOTA: End Sub
Los botones de comandos deben tener en su propiedad SY T L E el valor 1 Gráfico y Instrucciones del control T IM E R : Visualizan la hora en la etiqueta 4 y mueven la palabra
en su propiedad PICTURE asígnele los gráficos indicados. VENTAS en el título del formulario.
Los nombres de los gráficos en el orden que se muestran en la aplicación a desarrollar P r i v a t e S u b T i m e r l _ T i m e r ()
son: PAINT.BMP, PREVIEW.BMP, POINT4.1CO, que normalmente se encuentran L a b e l 4 = F o r m a t ( T i m e , " h h :mm: s s AMPM")
en la siguiente carpeta: Archivos de Programa\DevStudio\Vb\Graphics Forml.Caption = Mid(Forml.Caption, 2) + LeftfForml.Caption, 1)
End Sub

^ |||jj|Íf^ 196 G ru p o E d ito r ia l Megabyte


197 i n *
áülÉ É ^ VISUAL BASIC como debe ser.. .
PASO N 2 02: Escribir las instrucciones.
APLICACIÓN DESARROLLADA N° 24
D e fin ir las variables a u tiliz a r en la sección de declaración del fo rm u la rio .
En esta a p lica ció n se u tiliz a la in stru cció n P R IN T que perm ite e s c rib ir
mensajes directam ente en el fo rm u la rio y T A B para dejar espacios antes 101 Project! - Formi (Code)
r ° M
de im p rim ir. |(General) jrJ 1(Declarations)
Esta a plica ció n es una pantalla de presentación con un texto de fo nd o, una
Dirn T, N As Irxteger
etiqueta cuyo contenido va m od ifica n do su tamaño y un grá fico que se m ueve
de derecha a izquierda. ▼:
■-ill jlP
« PANTALLA DE PRESENTACION H S I3E 3
Visual Basic como debe ser... Juan José Castañeda León E s c rib ir las instrucciones en el evento A C T IV A T E del fo rm u la rio para que
Visual Basic como debe ser...
Visual Basic como debe ser... V IS U A L Juan José Castañeda León
Juan José Castañeda León
se ejecutan cuando el fo rm u la rio se activa. Estas instrucciones m uestran un
Visual Basic como debe ser...
Visual Basic como debe ser.. IA % I4 Juan José Castañeda León
Juan José Castañeda León
texto de fo nd o en el fo rm u la rio .
Visual Basic com o debe ser. Juan José Castañeda León Prívate Sub Form_Activate()
Visual Basic como debe ser... Juan José Castañeda León
Visual Basic como debe ser... Juan José Castañeda León Dím X As Integer
Visual Basic como debe ser... Juan José Castañeda León 'Ancho del Formulario
Visual Basic como debe ser.. Juan José Castañeda León Forml.Wídth - 6400
Visual Basic como debe ser. OK j Juan José Castañeda León
Visual Basic com o debe ser... Juan José Castañeda León
'Altura del Formulario
Visual Basic com o debe ser... Juan José Castañeda León Forml.Height = 3330
Visual Basic com o debe ser... Juan José Castañeda León Labell.AutoSíze = True
Visual Basic como debe ser... Juan José Castañeda León For X = 1 To 35
Visual Basic com o debe ser... Juan José Castañeda León
Print T a b ( X ) " V i s u a l Basic como debe ser. . .
Print Tab(60 - X ) ; "Juan José Castañeda León"
P A S O N ° 0 1 : D ebe d ib u ja r en el fo rm u la rio una e tiq u e ta (L a b e l), un Next X
g rá fic o (p ictu re b o x), un re lo j (tim e r) y un b otón de comandos (com m and). A 'Posición inicial del Gráfico
T = 6000
la etiqueta, al botón de com ando y al fo rm u la rio , m od ifíqu e le s su propiedad
'Puesta en marcha del Reloj
C ap tion co m o se m uestra en la fig u ra anterior: Timerl.Interval = 1 0
End Sub
«i. Form!
Instrucciones del E ve nto T IM E R
Prívate Sub Timerl_Timer ()
Lab ell N = N + 1
If N > 30 Then
N = 1
End If
T = T - 50
If T < -600 Then
T = 6000
End If
Picturel.Left = T
Labell.FontSize = N
End Sub
E l botón O K debe tener la in stru cció n E N D .

G rupo E ditorial M t «
a m
|¡ ! ¡ l i > VISUAL BASIC como debe se r...
IMAGELIST (LISTA DE IMAGENES): El contenido de la Hoja Im ágenes es:
wn
S 1 G en eral [ i m á g e n e s |) C o l o r
Im agen actual
Este c o n tro l perm ite alm acenar im ágenes o g ráficos con la extensión IC O Index: h &ey: 1
(* .IC O ) y con la extensión B M P ( * .B M P ) en la m em oria de la com putadora lag: 1
para poder m an ip u la rlo s en nuestro program a. Im ágenes:

Si no se encuentra en la caja de herram ientas debe seguir cualquiera de los


siguientes pasos: U
1. En la caja de herram ientas haga c lic k con el botón derecho y e lija la Insertar imagen.. ! Quitar imagen I Núm ero de imágenes:

o p ció n C O M P O N E N T E S .
2. D e la o pción P ro je ct e lija C O M P O N E N T E S . A c e p ta r j C a n ce la r

3. Pulse las teclas < C R T L > + < T > .


De la lista de com ponentes haga c lic k en la ca silla del c o n tro l llam ada: En esta hoja podemos adicionar o e lim in a r más gráficos del control im agelist.
Microsoft Windows Common Controls 5.0. E l b otón Insertar Imagen perm ite buscar y seleccionar una im agen para
adicionarla.
Tam bién se puede lla m a r este co n tro l, si elegim os la o p ció n C O N T R O L E S E l botón Quitar Imagen perm ite b o rra r una im agen.
D E VB E D IC IO N E M P R E S A R IA L , en el m om ento de ingresar a V isu al En la caja de textos Key, se puede asignar uno o más caracteres que van a
B asic o crear un nuevo proyecto. id e n tific a r a cada im agen alm acena en el co n tro l.
PRINCIPALES PROPIEDADES DE UN IMAGELIST: En la caja de textos Tag se puede e s c rib ir un te xto el cual queda alm acena­
Las propiedades principales del control se obtiene con sólo e le gir la propiedad do para poder u tiliz a rlo en c u alqu ier m om ento si lo deseamos.
C ustum ize (personalizado). Se v is u a liz a la siguiente ventana con tres hojas En la caja de textos Index se v is u a liza el núm ero de im agen activa y p e rm i­
o fichas: General, Im ágenes y color. te a ctiva r a cu a lq u ie r otra imagen.
P á g in a s d e p r o p ie d a d e s tm \ En la etiqueta N ú m e ro de Imágenes se v isu a liza la cantidad de imágenes
í j « n * r . * ! j ] Im á g e n e s J C o lo r que tiene el co n tro l Im agelist.
r - 1 6 X 1 6 H e ig h t: | Ejemplo de algunos gráficos que puede insertar en el control Imagelist:
3 2 x 32
W id t h : f
r - 4 8 X 48 Páginas de propiedades
LE]
C u s to m
G e n e ra l Im á g e n e s | c o lo r

1^ J U s e M a s k C o lo r Im a g e n a c tu a l
in d e x : [g Key: p

lag: r
Im ág enes:

A c e p ta r | C a n c e la r | A yuda

[ in se rta r im age n... | Q u ita r im age n | N ú m ero de im áge nes: J?


L a h o ja General, p erm ite asignar la a ltu ra y el ancho para los g rá fico s que
se van a a lm ace n ar en este c o n tro l. Estos va lo re s se pueden c a m b ia r
A c e p ta r j C a n c e la r j A p lic a r A yuda
solam ente cuando el co n tro l no tenga nin gú n g rá fic o alm acenado.

200 G ru p o E d ito ria l Megabyte 201


£ 3 ^ VISUAL BASIC como debe ser. >CAPÍTULO IV: Mejorando el Aspecto de los Formularios
El contenido de la Hoja C olor es: APLICACIÓN DESARROLLADA N° 25
P á g in a s d e p r o p ie d a d e s Inserte en el c o n tro l Im a g e list una cantidad determ inada de im ágenes para
G e n e ra l ) Im á g e n e s C o lo r j que luego se m uestren una a c o n tin u a ció n de o tra al hacer c lic k en el botón
P ro p ie d a d e s: C o n ju n to d e co lo re s: M O S T R A R S IG U IE N T E . D ib u je en un fo rm u la rio un c o n tro l Im agelist,
r-T j C olo res e s tá n d a r un Picture y dos com m and.
P a le ta d e co lo re s:
■laskColor « . M U E S T R A D E IM A G E N E S EHJ
| C ara d e l b o tó n g] -i
E scrito rio

m E s p a c io d e tra b a jo d e la a p lic a c ió n

F o n d o d e la v e n ta n a
jlJ
E d ita r c o n tro l p e rso n a liz a d o ...

A c e p ta r ~| C a n c e la r A p lic a r Mostrar Siguiente

S ALIR
B a c k C o lo r p erm ite asignar un c o lo r de fo n d o y M a s k C o Io r asigna un c o lo r
para la mascara del co ntrol.
Una vez que insertó imágenes en el co ntrol Im a g e L is tl, use la propiedad
E l co n tro l tam bién tiene la propiedad U sem askC olor para establecer un valor
Personalizado, escriba las siguientes instrucciones en el botón M o s tra r Siguiente:
que determ ina si el c o lo r asignado en la propiedad M a s k C o Io r es u tiliz a d o Prívate Sub Commandl_Click()
com o una máscara. S ta tic P As In te g e r
P = P + 1
I f P > I m a g e L i s t l . L i s t l m a g e s . C o u n t Then
M A N E T O D E L A S IM Á G E N E S D E L C O N T R O L IM A G E L I S T P = 1
End I f
P ic tu r e l = Im a g e L is tl.L is tlm a g e s(P ). P ic tu re
Para obtener cualquiera de las im ágenes que se encuentran almacenas en End Sub
el c o n tro l Im a g e list se u tiliz a la siguiente sintaxis: Las instrucciones anteriores perm iten mostrar las imágenes una a continuación
Control_ImageList.Listlmages(índice).picture de otra y cuando se llega a la u ltim a muestra nuevamente la primera.

FU N C IO N LO ADPICTURE
E l ín dice es un v a lo r que in d ica el n úm ero de la im agen que se quiere
obtener.Por ejem plo, para m ostrar en el co n tro l Picture 1 la im agen N° 3 del Es una fu n c ió n que p erm ite c o lo ca r en un c o n tro l Im age o P ictu reB o x un
c o n tro l Im a g e list N ° 1 se escribe. g rá fic o . Su sintaxis es:
Nombre_del_Control=loadpicture (ruta y nombre de gráfico)
Picturel = ImageListl.Listlmages(3).Picture Ej empl os:
P ic tu rel = L oadP icture( "graphics\icons\com puter\key04. ico ")
Para saber cuantas imágenes tiene el co n tro l Im a g e L is t u tilic e la propiedad
Im age 1 = L o a d P icture("graphics\icons\com puter\key04.ico")
C ount. Por ejem plo, la siguiente in s tru c c ió n alm acena en la variable N, la P ic tu rel = L oadPicture( "c:\vb\m etafiles\com puter.w m f")
cantidad de im ágenes del co n tro l Im a g e lis t 1.
M U Y IMPORTANTE
N = ImageListl.Listlmages.Count Ud., debe escribir correctam ente la ruta de donde se encuentra el gráfico que desea
colocar en el control PictureBox o en el control Image.

202 G ru p o E d ito ria l Megabyte <||§ § f | 203


VISUAL BASIC como debe se r... ' CAPITULO IV: Mejorando el Aspecto de los Formularios

CALENDAR: (CALENDARIO) APLICACIÓN DESARROLLADA N° 26


L a a plica ció n muestra la fecha seleccionada en una etiqueta, pero en letras.
ig g ig w a g ta i'gi'ai» «í ¿y;iis tii ¡ggggj
O c tu b re 1998|octubre ~£\ j-m s _-J
Es un control que se utiliza para manejar la fecha del sistema de una manera
D om Lun Mar Mié Ju e Vie Sáb
personalizada. Este control muestra en el form ulario un calendario con la fecha 1 2 3
actual seleccionada y nos permite buscar otra fecha en cualquier mes o año. De la 4 5 6 7 8 9 10
11 12 13 14 15 16 .............i
lista de componentes haga click en la casilla del control llamado: Microsoft ca­ 18 19 20 21 22 23 24
lendar Control. 25 26 27 28 29 30 31
4 6
PR IN C IP A LE S PRO PIED AD ES D E UN CALEND AR:
CUSTOM
Permite personalizar el control Calendar. DESARROLLO DE LA APLICACIÓN
DAY Para desarrollar esta aplicación dibuje en el form ulario el control Calendar y dos
Obtiene el día de la fecha seleccionada y permite seleccionar un etiquetas. Luego se debe programar en el evento C lick del control Calendar.
nuevo día. El signo dólar ($) al final de una variable indica que la variable es de tipo String.
DAYFONTCOLOR INSTRUCCIONES DEL CONTROL CALENDAR.
Asigna el color para los nombres de los días. Prívate Sub Calendarl_Click()
DAYLENGTH Labell = Calendar1.Valué
Indica la forma de visualizar el nombre de los días de la semana. diasemana = WeekDay(Labell)
FIRSTDAY dia$ = Day(Labell)
Permite indicar el primer día de la semana a visualizar en el mes = Month(LabellJ
calendario. año$ = Year(Labell)
GRIDCELLEFFECT Select Case diasemana
Cambia el estilo de las líneas del calendario. Case 1 : diasem "Domingo"
GRIDFONTCOLOR
Case 2 : diasem "Lunes"
Case 3 : diasem "Martes"
Asigna un color para los días del mes. Case 4 : diasem "Mi ércol es "
MONTH Case 5: diasem = "Jueves"
Obtiene el número del mes seleccionado y permite seleccionar un Case 6: diasem = "Viernes"
nuevo mes. Case 7: diasem = "Sábado"
MONTHLENGTH End Select
Indica la forma de visualizar el nombre de los meses. Select Case mes
SHOWDATESELECT Case 1: nmes = "Enero"
Permite que se muestren los botones para seleccionar una nueva Case 2: nmes = "Febrero"
fecha del calendario.
Case 3: nmes = "Marzo"
Case 4: nmes = "Abril"
SHOWDAY Case 5: nmes = "Mayo"
Permite que se muestren los nombres de los días de la semana en Case 6: nmes = "Junio"
el calendario. Case 7: nmes = "Julio"
SHOWVERTICALGRID Case 8: nmes = "Agosto"
Permite visualizar las líneas verticales del calendario. Case 9: nmes = "Setiembre"
VALUE Case 10 : nmes = "Octubre"
Permite obtener la fecha seleccionada del calendario. Case 11 : nmes = "Noviembre
YEAR Case 12 : nmes = "Diciembre
Obtiene el año de la fecha seleccionada y permite seleccionar un End Select
Label2 = diasem + dia$ + " de " + tunes + " de " + año$
nuevo año. End Sub

204 G rupo E d it o r i a l M e g a b y t e ^ ”^
VISUAL BASIC corno debe s e r ... C APITU LO IV: Mejorando el Aspecto de los Formularios

STATUSBAR (BARRA DE ESTADO) STYLE


Perm ite in d ic a r el estilo de la barra de estado. E l estilo 0 -strN orm al, muestra
' ts;;::
r~ r la barra de estado con todos los paneles asignados y el e stilo 1-sbrS im ple
muestra sólo el texto escrito en la propiedad S im p le Text.
Este co n tro l se u tiliz a para m ostrar una barra de estado en un fo rm u la rio
MOUSEPOINTER
norm alm ente en la parte in fe rio r en la cual se puede m ostrar in fo rm a c ió n Se u tiliz a para in d ic a r la fo rm a que tendrá el puntero del mouse cada vez
co m o p o r eje m p lo la fecha y hora del sistema, el estado del teclado, o que éste pase p o r la barra de estado. Si desea com o puntero del m ouse un

c u a lq u ie r o tro tip o de mensaje. g rá fic o seleccionado p o r U d. Debe e le g ir la ú ltim a o p ció n (99-ccC ustom ).
L a selección del g rá fic o los puede hacer en la página Im agen com o se verá
Esta in fo rm a c ió n se visu a liza en determ inados espacios dentro de la barra
más adelante.
de estado llam ados paneles los cuales pueden ser hasta 16. SIMPLE TEXT
Si no se visua liza en la caja de herram ientas, haga c lic k en la ca silla del Perm ite e s c rib ir un texto el cual se v isu a liza en la barra de estado cuando
en la p ropiedad S tyle se e lig e el e stilo 1-sbrS im ple.
c o n tro l llam ado: Microsoft Windows Common Controls 5.0 de la lista
OLEDDROPMODE
de componentes.
D evu elve o establece el m odo en que un com ponente de destino rea liza las
operaciones de co locación.
P R IN C IP A LE S PRO PIED AD ES D E U N STATU SBARS: ENABLED
In d ic a si la barra de estado debe estar activada o desactivada.
Las propiedades principales del co ntrol se obtiene con sólo ele gir la propiedad
SHOWTIPS
C ustum ize (personalizado). Se visualiza la siguiente ventana con cuatro hojas
In d ic a si la barra de estado debe m ostrar el te xto de ayuda que se escribe
o fichas: General, Paneles, Fuente e Im agen.
en la p ropiedad T o o ltip te x t de la h oja Paneles.
E l conte nid o de la hoja General es: E l contenido de la hoja Paneles es:
am ar G e n eral P a n e le s j F u e n te ) Im a g e n ]
G e n e ra l j Pan eles ] F u e n t e | Im a g e n j
Incjex: f panel j Q u it a r p a n e l

Style: H f W BfflllTO Te x t:

M o useP ointe r: j o - c c D e ía u lt T o o l T i p T ext:

G imple T ext. K ey: M ín im u m W i d t h : 11 4 4 0 .0 0

T aa A c tu a l W id t h : 11 4 4 0 0 0
Q L E D ro p M o d e : jo - c c O L E D ro p N o n e
A lig n m e n t: Im a g e n
E n a b le d fs? S h o w T ip s
E x a m in a r...
Sfttle: 0 - s b rT e x t

B e v e l: 1 - s b r ln s e t 'W I

A u t o S ize: O - s b rN o A u tc ^~ | E n a b le d Jv'

J J Ayuda

A c e p ta r j C a n c e la r | Aplicar, Ayuda INDEX


Visualiza o selecciona cualquiera de los paneles creados en la barra de estado.

206 G ru p o E d ito r ia l Mega


¿ S S t t VISUAL BASIC como debe se r... <CAPITULO IV: Mejorando el Aspecto de los F orm ularios^
TKXT E l co nte nid o de la h o ja F u e n te es:
Permite escribir un texto el cual se va a visualizar en el panel siempre y cuando la - \
propiedad Style de esta hoja tenga el valor 0-sbrText.
G e n e ra l ] P a n e le s F u e n te Im a g e n )
TOOLTIPTEXT P ro p ie d a d e s : F u e n te : Xam año:
Permite escribir un texto de ayuda que se visualiza cuando el puntero del mouse se Permite cambiar el tipo
¡M S S a n s S erif z ] I82 6 JÜ
de le tra , tam año y
encuentre en el panel siempre y cuando la propiedad Show Tips de la hoja General E fe c to s
r N e g rita r S u b ra y a d o asignar efectos al texto
se encuentre activada.
1 C u rs iv a r T achado que se muestra en la
KEY
T e x to d e ejem p lo : barra de estado.
Permite asignar uno o más caracteres que van a identificar a cada panel. No acepta
números. M S S a n s S erif

TAG
Permite escribir un texto el cual queda almacenado para poder utilizarlo en cualquier
momento si lo deseamos. A c e p ta r |

ALIGNMENT
Alinea el texto o el gráfico dentro del panel a la izquierda, centro o derecha. E l contenido de la h o ja Im a g e n es:
STYLE
Permite seleccionar el tipo de información que desea mostrar en el panel. Si desea Esta hoja permite
G e n e ra l | P a n e le s j F u e n te Im a g e n j seleccionar un gráfico el
visualizar el texto escrito en la propiedad Text, debe elegir el estilo 0-sbrText. Aquí
. ______
P ropiedad e s: V is ta previa: cual va a reemplazar al
puede elegir que se muestre la fecha u hora del sistema, el estado del teclado, etc.
puntero del mouse cuándo
BEVEL
lo ubiquemos en cualquier
Selecciona el tipo de borde del panel (sin relieve, bajo relieve o en alto relieve). parte de la barra de estado.
A IT O S IZ E El gráfico que Ud. elija se
Para indicar si el tamaño del panel debe estar de acuerdo al tamaño de lo que visualiza siempre y cuando
contiene o no. se halla seleccionado la
M IN IM U M W IDTH E xam inar... VJMzi — i opción 99-ccCustom de la
Para indicar el ancho mínimo que puede tener el panel. -------- propiedad MousePointer
EXAM INAR A c e p ta r I C a n c e la r
J ____ I de la hoja General..
Permite seleccionar un gráfico que va a acompañar a la información que mostramos
en el panel. Ud., debe conocer previamente la ruta de la carpeta donde se encuen­ EJEM PLO DE UNAAPLICAGON USANDO ELCONTROLSTATUSBAR
tran los archivos de gráficos en su computadora. tm iS M m m n ™ i ^'m rr— — T - idi *i
Una de las rutas donde puede encontrar archivos de gráficos es:
C:\Archivos de Programa\DevStudio\Vb\Graphics'Sicons Y luego en cualquiera
de las carpetas que contiene. S IS T E M A
SIN IM AG EN DE 1
Borra el gráfico asignado al panel ?

ENABLED VENTAS
Para indicar si el panel debe estar activado o no.
VISIBLE
Para indicar si el panel debe estar visualizar o no.
/ X 8 /0 5 /9 9 J o sé C astañ eda 4 42 AM
I
208 G ru p o E d ito r ia l Megabyte 209
^ Íllíl¡|> VISUAL BASIC como debe ser.. . >CAPITULO IV: Mejorando el Aspecto de los Formularios ^
A signe las propiedades al c o n tro l Toolsbar de tal manera que tenga el m ism o PANTALLAS DE PRESENTACIÓN
aspecto de la a plicación m ostrada. Tam bién se puede program ar dentro de 1. Pantalla desarrollada en Power Point.
este co n tro l, p o r eje m p lo: Se desea que al hacer c lic k en la calculadora, se
a ctive la calculadora del w ind ow s.
L a propiedad INDEX del PANEL nos p erm ite saber en cuál de ellos el
usuario h izo c lic k . A l hacer c lic k en el p rim e r panel la propiedad Index tom a
el v a lo r 1, al hacer c lic k en el segundo panel, la propiedad In de x tom a el •' rm *
v a lo r 2 , etc.
Entonces las siguientes instrucciones para el co n tro l son: o ttjR a nrrj i t
Prívate Sub StatusBarl _PanelClick(ByVal Panel As ComctlLib. Panel) T R A N S P O R T S .A
If Panel.Index = 4 Then
Shell "c:\windows\calc.exe", 1
End If f; sai is ¡1
End Sub
U d., puede diseñar su pantalla en Pow er P o in t y pegarla en su fo rm u la rio o
Si U d., ha asignado uno o más caracteres en la p ro p ie d a d K E Y , entonces
a ctiva rla . Si usted pega la pantalla, ésta se v is u a liza rá estática (sin los
ta m b ién puede id e n tific a r e l panel donde se h iz o C lic k , m ediante esta m ovim ientos o efectos asignados) Para e llo una vez que term inó de diseñarla,
propiedad. Por ejem plo: Si ha asignado las letras CAL en la propiedad K E Y preséntela (C lic k en el B o tó n P R E S E N T A C I O N C O N D I A P O S I T IV A ) y
del panel n úm ero 4 (calcula do ra ), entonces puede e s c rib ir ta m b ién las pulse IMPR PANT (Print Screen), luego vaya al V isu al Basic y,haga
siguientes instrucciones en el co ntrol: c lic k en cu a lq u ie r parte d el fo rm u la rio y pulse CTRL+V. Si desea b o rra r la
Prívate Sub StatusBar l_PanelClick(By Val Panel As ComctlLib.Panel) pantalla, borre el co nte nid o de la propiedad P icture del fo rm u la rio .
I f P a n e l . K e y = "CAL" T h e n Para a c tiv a r una p an talla en P ow er P o in t desde V isu al Basic y v is u a liz a r
S h e l l " c : \ w i n d o w s \ c a l c . e x e “, 1 los m ovim ie n to s y efectos que le asignó, puede u tiliz a r el c o n tro l O L E .
End I f
End Sub EL CONTROL OLE
NOTA Perm ite insertar objetos. A l d ib uja rlo s se visua liza una caja de d iá lo g o donde
se puede e le g ir el o bjeto a insertar. Si pulsó C A N C E L A R y salió de la caja
SHELL p erm ite ejecutar program as (*.exe) desde el V isual B asic y el valor l le
de d ia lo g o , para regresar haga un c lic k con el botón derecho del m ouse en
indica que el program a se debe ejecutar con e l tam año d e ventana norm al. D ebe
el c o n tro l O L E y e lija la o pción INSERTAR OBJETO.
especificar correctam ente la ruta y el nom bre del archivo.
I Insellai o b j e t o ... . ........ « . S I
CALCULADORA DEL WINDOWS 3* Tips de objeto: I Aceptar
Edición Ver Ayuda ¡ <• Crear Quevo
Adobe«-Table 2.5 Cancelar
Clip de multimedia
f" Crear desde archivo Corel PHOTO-PAINT 5.0 Imagen
CorelCHART! 5.0 Chart
CorelDRAW! 5.0 Gráfico
I postrar como icono
CorelDRAW! 5.0 Presentation Exchar ,
E l CorelEquation! 1.0 Equation .T I
r ~ B ack 1 CE 1
C 1
Resultado
MC 8 9 / s q rt Inserta un nuevo objeto de Adobe Photoshop
Image en el documento.

MR 4 5 6 %

MS 1 2 3 1 /x

M+ 0 +h f
La opción C rear d esd e A rc h iv o perm ite seleccionar el archivo previam ente
creado

210 G ru p o E d ito r ia l Megabyte


7

VISUAL BASIC como debe se r... CAPÍTULO IV: Mejorando el Aspecto de los Formularios
Instrucciones del control TIMER
ACTIVAR UNA PRESENTACIÓN EN POWER POINT Private Sub TimerI JTimer()
Una vez creada y grabada la presentación en Power Point, active el Visual Static N As Byte
Basic y en un form u la rio en blanco pegue el control O LE y en la ventana que se Labell(N). Visible = True ‘Muestra de la letra
Labell(N).Top = 2000 'Ubicación vertical
visualiza e lija la opción C rear desde A rch ivo , luego haga c lic en el botón E x a ­
Labell(N ).Left = P ‘Ubicación horizontal
m in a r para buscar y seleccionar la presentación creada en Power Point ha­ P = P + 500 ‘Velocidad de movimiento de las letras
ciendo clic en el botón Insertar y luego en Aceptar. En el evento Form Load IfP > FIN Then
del form u la rio debe escribir: FIN = FIN + Label 1(N). Width + 200
P riva t e S u b F o rm _ L o a d () P =0
N= N+ 1
O l e l . V i s i b l e = F a lse
End I f
O le l.A c tin o = 7 I fN > 6 Then
End Sub Tim erl.Inten’al = 0
Com mandl .Visible - True
2. Muestra la palabra SISTEMA letra por letra. End I f
End Sub
3. Mueve las palabras y oscurece y aclara el formulario
SISTEMA . P R E S E N T A C IO N 1-ñJSlJü'
ic s ^ 'l
o * ..j
BIENVENIDOS
En un fo rm ulario debe crear un array de 7 etiquetas. Para ello, D ibuje la etiqueta
N° 01, luego pulse C T R L + C y luego C T R L + V hasta com pletar las siete (desde
Labell(O ) hasta L a b ell(6 )). También debe dibujar un control T IM E R y un
botón de comandos el cual tiene el gráfico llamado: P O IN T4.IC O (opcional).
A cada etiqueta debe asignarle una letra de la palabra S IS T E M A . Labe] 1(0)
debe tener en su propiedad C aption la letra S, L a b e ll( l) la letra I, etc. AL SISTEM A
INSTRUCCIONES:
Definir las variable en la sección de declaración del formulario
P u b lic P As I n t e g e r
P u b li c F IN A s I n t e g e r D ibuje en el form ulario dos
etiquetas, dos control Tirner, un L ab e ll
In stru ccio n es del p roced im ien to FORM ACTIVATE P ic tu re B o x y un b o tó n de
Prívate Sub Form_Activate()
Dim X As Byte com andos. A las etiquetas,
Formt. WindowState = 2 ‘Maximiza el Formulario P ic tu re B o x y b o tó n de
For X = OTo 6 co m a n d o a síg n e le s la s
Labell(X).FontName = "Couríer New" ‘Tipo de letra Label2
Labell(X).FontSize = 72 'Tamaño de letra propiedades como se muestran
Labell(X). Visible = False ‘Oculto en la figura anterior.
Labell(X).BackStyle = 0 ‘Transparente Com m andl
Labell(X).AutoSize = True
Next X
FIN = 2500 ‘Ubicación de la primera letra Definir las variable en la sección de declaración del formulario
Commandl. Visible = False ‘Oculta el Botón OK
P u b l i c N, I As In te g e r
Timerl Anterval = 100
End Sub Public sw, CLARO As Boolean

- *- G rupo Editorial Megabyte m m


VISUAL BASIC como debe se r.. .
Instrucciones del procedimiento Form Activate
P r í v a t e S u b F o r m _ A c t i v a t e () HSCROLL Y VSCROLL (Barras de Desplazamiento)
F o rm l.W in d o w S ta te = 2
T i m e r l . I n t e r v a l = 100 il
jj il il
T im e r 2 . I n t e r v a l = 100
End Sub Las barras de desplazam iento son controles que se pueden u tiliz a r para
varias aplicaciones com o p o r ejem plo para v is u a liz a r in fo rm a c ió n cuando
Instrucciones del TIM E R 1 Instrucciones del T IM E R 2 se encuentra en un c o n tro l donde no se puede v is u a liz a r toda al m ism o
Suben y bajan las palabras Aclaran y oscurecen el formulario. tie m p o, para increm entar o d ism in u ir el valor de una variable, etc.
Prívate Sub Timerl_Timer() Prívate SubTimer2_Timer() Sus p rin c ip a le s p ro p ie d a d e s son:
Ifsw Then If C LA R O Then
N = N - 200 1 = 1 -5 LARG ECHANG E
IfN < 0 Then If 1 = 0 Then Para in d ic a r el increm ento o decrem ento de la propiedad Valué cada vez
sw = False C LA R O = False que el usuario haga c lic k en el área de desplazam iento.
E n d lf End If SM ALLC H AN G E
Else Else Para in d ic a r el increm ento o decrem ento de la propiedad Valué cada vez
N = N + 200 1 = 1+ 5 que el usuario haga c lic k en la fle cha de desplazamiento.
IfN > 7000 Then If I = 255 Then MAX
sw = True C LA R O = True Para in d ic a r el v a lo r m á x im o que puede to m a r el v a lo r de la propiedad
E n d lf End If Valué. E l v a lo r predeterm inado es 32767.
E n d lf End If M IN
Labell.Top = N Form 1.BackColor=RGB(0,1,0) Para in d ica r el v a lo r m ín im o que puede tom ar el v a lo r de la propiedad Valué.
Label2. Top = 7000 - N End Sub E l v a lo r predeterm inado es 0.
End Sub VALU E
In d ic a la posición actual del cuadro de desplazam iento. Esta propiedad es la
P ractique cam biando la p o sició n d el de la v a ria b le I en R G B . predeterm inada de las barras de desplazam iento, esto quiere d e c ir que para
E xiste n m uchas otras form as de crear pantallas de presentación y muchas refe rirm os a esta propiedad sólo se necesita e s c rib ir el nom bre del control
veces depende de la cre a tivid a d de cada uno. Por ejem plo: las dos instrucciones realizan lo m ism o: R = H sc ro lll. Valué y
T am b ié n puede in s e rta r otros o bjetos c o m o p o r e je m p lo : im ágenes de R = H s c r o lll
M ic ro s o ft, galería de imágenes, Hojas y gráficos de Excel etc. APLICACIÓN DESARROLLADA N° 27
Para e llo , haga c lic k con el botón derecho del m ouse en c u a lq u ie r parte de la Esta a plicación perm ite m o d ific a r el c o lo r del fo nd o del fo rm u la rio con
caja de herram ientas y e lija la o p ció n com ponentes y de la pan talla que se diferentes tonalidades, y m o ve r un gráfico.
v is u a liz a e lija la h o ja O B J E T O S IN S E R T A B L E S .
« U SO DE S C R O LLB A R S M 3
Intensidad
M u e ve el Gráfico
R O JO j J M 1255 A.

VERDE j J 1 » 1 1255

Selected Items Only


Adobe Phiotoshop Imaj- AZUL j J M 1255 jd
Location: \\COM13\D\ADOBE\PHOTOSHP.EXE

=J Em pezar 1 Salir 1

214 G rupo E d ito r ia l Megabyte'1 215


S l b VISUAL BASIC como debe ser. . ,
P A S O N ° 0 1: D IB U J A R L O S C O N T R O L E S . Instrucciones del F o rm _ A c tiv a te para que al activarse el fo rm u la rio las

D ib u je los controles com o se m uestra a continuación: barras de desplazam iento y las etiquetas N ° 5 ,6 y 7 tengan el v a lo r cero (0).
Priv a t e S u b F o r m _ A c t i v a t e ()
I t i Form l imi— — .Inlxl H S c r o l l l . V a lu é = 0
H S c ro ll2 .V a lu é = 0
Label4
H S c r o l l 3 . V a lu é = 0
Labell
V S c r o l l l . V a lu é = 0
jlU Labe!5 LabeIS
P ic tu re l.T o p = 0
L a b e l5 = 0
Label2 Label6 L a b e16 = 0
±1 Label7 = 0
Label3 <1 1 jü
Label7 End Sub
Instrucciones del p ro ce d im ie n to C A M B IO , que perm iten ca m b ia r el c o lo r
Command! | Command2 |
del fo n d o del fo rm u la rio de acuerdo al v a lo r de la propiedad Valué de cada
una de las barras de desplazam iento.
P A S O N ° 02: A S IG N A R L A S P R O P IE D A D E S . S u b CAMBIO()
D im ROJO, VERDE, AZUL A s B y t e
A sig n e las propiedades a las etiquetas y botones de com andos com o de
ROJO = H S c r o l l l
m uestra en la a p lica ció n a desarrollar. VERDE = H S c r o l l 2
AZUL = H S c r o l l 3
F o r m l . B a c k C o l o r = RGB(ROJO, VERDE, AZUL)
Instrucciones del F o rm _ L o a d para que al ejecutar la a plica ció n se asignen L a b e l5 = H S c ro lll
las propiedades a las barras de desplazam iento. L a b e l6 = H S c ro ll2
L a b e l7 = H S c ro ll3
End Sub
Prívate Sub Form_Load() Instrucciones del B o tó n E M P E Z A R .
HScrolll.Min = 0 P r í v a t e S u b C o m m a n d l _ C l i c k ()
HScrolll.Max = 255 F o rm _ A ctiva t e
End Sub
HScrolll.LargeChange = 5
HScrolll .SmallChange = 5 D en tro de cada Barra se llam a al p ro ce d im ie n to C A M B IO .
HScroll2.Min = 0 Prívate Sub HScrolll_Change()
HScrolll.Max = 255 CAMBIO
HScroll2.LargeCh.ange - 5 End Sub
HScroll2.SmallChange - 5 Prívate Sub HScroll2_Change()
HScroll3.Min = 0 CAMBIO
HScroll3.Max = 2 5 5 End Sub
HScroll3.LargeChange - 5 Prívate Sub HScroll3_Change()
HScrollJ. SmallChange = 5 CAMBIO
VScrolll.Min = 0 End Sub
VScrolll.Max = Forml .ScaleHeight Instrucciones del c o n tro l V S C R O L L 1 .
VScrolll .LargeChange = 100 P r í v a t e S u b V S c r o l l l _ C h a n g e ()
VScrolll.SmallChange = 25 P ic tu re l.T o p = V S c ro lll
End Sub End Sub

- lí* G r u p o E d it o r ia l M e g a b y t e < |f ¡ ||¡ |j j f


^ ¡llíiil? ' VISUAL BASIC como debe ser. . C A P ÍT U L O IV : M ejorando el A specto á c los F orm ularios

PROGRESSBAR (Barra de Progreso) PREGUNTAS DE REPASO N 2 0 4


m
1. ¿Qué casilla debe activar en las lista de componentes si en
M uestra una barra que re fle ja la ejecución de un proceso en la com putado­ la caja de herramientas no encuentra el control ImageList?
ra. En la ventana de com ponentes se llam a: M icro so ft W indow s C om m on 2. Explique los métodos gráficos.
C ontrols 6.0. Sus p rincip ale s propiedades son: 3. ¿Con qué propiedad se puede saber el panel donde el usuario
MAX
hizo click en el control StatusBar?
In d ica el v a lo r m á xim o que puede tom ar el control.
4. ¿Cuál es la diferencia entre Qbcolor y RGB?
M IN
5. ¿Cuál es la utilidad del control Calendar?
In d ica el va lo r m ín im o que puede to m a r el control.
6. Explique cómo se pueden buscar los gráficos que tenemos
VALU E
ín d ica el v a lo r del c o n tro l en un determ inado m om ento. disponibles en nuestra computadora.
7. ¿Qué significa el signo de dólar ($) al final de una variable?
m P r o y e c to l - F orm l (C ódigo) |_ |a |x | 8. ¿Qué valor debe tener el control Timer en su propiedad
P a ra d e s a r r o lla r u n jF o rm jrj jA c tív a te +j Interval para que las instrucciones que contiene se ejecuten
e je m p lo , pegue en un P r í v a t e S u b F o r m _ A c t i v at e () cada segundo?
Dim x As Integer
fo rm u la rio en blanco el P r o g r e s s B a r 1.M a x = 1000 9. ¿Qué diferencia encuentra entre el control Hscroll y Vscroll?
c o n tro l P ro gressB ar y F o r x = 1 To 1 0 0 0 10. ¿Qué es un método gráfico?
en su p ro c e d im ie n to P r o g r e s s B a r 1.V a l u é = x
11. ¿Cómo podemos saber la ruta exacta de un archivográfico?
N e xt x
F orm A ctíva te escriba: E n d Sub 12 .¿Cuál es el valor predeterminado de la propiedadMax y Min di>
£<11 Jl f l los controles Hscroll y Vscroll?
13. ¿Cuál es la diferencia entre los controles Image y PictureBox?
C O N T R O L S L ID E R 14. ¿Cuántos tipos de figuras se pueden dibujar con el control
tr. Shape?
Es un c o n tro l que p erm ite desplazar una barra a través de una m arca que 15. ¿Cuál es la ventaja de usar el control Frame?
tiene el co n tro l. Se puede m anejar de manera casi ig u a l a los controles 16. ¿Cuál es la utilidad del control ImageList?
H s c ro ll y V s c ro ll. En la ventana de com ponentes se lla m a : M ic ro so ft 17. ¿Cuales son los tipo de gráficos que se pueden insertar en el
W indow s C o m m o n C o n tro ls 6.0. control PictureBox?
Sus p rincipales propiedades son: 18. ¿Con qué función se puede colocar un gráfico en un control
LAR G EC H AN G E PictureBox o Image?
In d ica el n úm ero de marcas que se desplazará la barra al presionar las 19. ¿Cómo le indicamos a Visual Basic que deje de ejecutar las
teclas R E P Á G o A V P Á G o al hacer clic en el control. instrucciones que se encuentran en el control Timer.?
SM ALLC H AN G E 20. ¿Qué función cumple las pulsación de las tecla CTRL+K cuando
In d ica el n úm ero de marcas que se desplazará la barra al presionar las trabajamos con el control Frame?
teclas Flecha Izq uie rd a o Flecha Derecha.
M A X y M IN Es muy importante que Ud., se formule nuevas aplicaciones o
Son sim ilares a las del c o n tro l ProgressBar. intercambie aplicaciones propuestas entre sus compañeros de estudio
O R IE N T A T IO N y desarrollarlas con la finalidad de enriquecer sus conocimientos.
In d ica la p o sició n del c o n tro l (H o riz o n ta l o V e rtical)
VALU E r
In dica el v a lo r del c o n tro l en un determ inado m om ento.
N O T A : D e s a rro lle la a p lic a c ió n N ° 27 u s a n d o este c o n tro l.

jfjjj l l p l » 218 G ru p o E d ito r ia l Megabyte * |¡ ¡ íj |¡ |¡


CAPITULO V
TA DE PASAJES

A gencia de Transporte "EL PROVINCIANO S.,

Pasajero |H T 0 RAMIREZ

D.N.I. |1 6895654

Hora de Salida Destino :


C 8 :0 0 pm . Lima
(* 9:00 prn.
ffiLSoft D a tò S .A
annan n is iE a g

Fecha Ö7/Z3/9B
1 PR O F O R M A
•' ............
OBSERVACr .Wc |X IM E N A TORREE

le c c ió n 1CAS TI LLA 2565


Precio
î^omputadaroa | p æ ker Bell -| 7DOLOO
p 1p e s c u t ¡
y re s o ia s |D a s k e t 40a -] 270.00

í ^ u b Total 970.00 I.G.V. 174.G0 Total 1 1 44. EO

\ _ Q tra F W q r n a - j „ V-lA

INGRESO
PERSONALIZADO
DE DATOS
<X ¿> CAPÍTULO V: Ingreso Personalizado de Datos
C O M B O (L IS T A D E S P L E G A B L E ):

Es un control que combina una caja de textos con una lista y se utiliza para
ingresar datos de una manera muy sencilla para el usuario.
PR IN C IPA L E S PR O PIE D A D E S DE UN CO M BO :
ÑAME
Permite asignarle un nombre. Por defecto el nombre es Com bol, Combo2,
Combo3 etc. Según el número de controles que se dibujen en el formulario.
ENABLED
Para indicar si debe estar activo o no.
FO NT
P erm ite seleccionar el tipo, tam año y estilo de letra.
L IS T
Permite ingresar los valores o datos que el usuario puede elegir de este
control. Por cada elemento que se ingrese se debe pulsar <CTRL> +
<ENTER>. Para insertar un elemento, ubique el cursor al inicio de donde lo
desea insertar y pulse <CTRL> + <ENTER>.
LISTIN D EX
Obtiene el numero del elemento seleccionado. Si se elige el 1er elemento
devuelve cero(O), el segundo uno(l), etc.
LOCKED
Para indicar si se puede cambiar el contenido del control.
SO R TED
t
Para indicar si los elementos deben salir ordenados.
STY LE
Selecciona el modo de elegir los elementos del control. TEXT
Para indicar lo que se va a m ostrar autom áticam ente en el control y
almacena el texto seleccionado.
V ISIB L E
Para indicar si se debe visualizar el combo.
VISUAL BASIC como debe ser.. CAPÍTULO V: Ingreso Personalizado de Datos ;l l ¡ | ¡ | |
APLICACION DESARROLLADA N 28 PASO N° 03: Escribir las instrucciones para los controles.

Esta aplicación debe permitir al usuario ingresar el nombre del alumno, su Instrucciones del botón O T R O A LU M N O
especialidad y tumo. Al hacer click en cualquiera de los Combo se debe
desplegar las opciones posibles a elegir. Prívate Sub Com m andl_Click()
‘Borra el contenido de Textl
Jn Jxj Textl =
‘Muestra el elemento predeterminado del Com bol (Computación)
Alumno Daniel Riveía Combol. Listlndex = 0
'Muestra el elemento predeterminado del Combo2 (M añana)
Especialidad JComputación jr ] Especialidad ^ « 3 Combo2.Listlndex - 0
‘Ubica el cursor en Textl para ingresar un nuevo alumno
Turno Arquitectura
^ U!ri° ¡Mañana j- ]
Secretariado
Textl. SetFocus
Sistemas End Sub
Otro Alumno Finalizar
Olio Alumno Finaliza!
El botón FINALIZAR debe tener la instrucción END.

PASO N° 01: Dibujar los controles. A PL IC A C IO N PRO PU ESTA N° 07

e . 4V i
Labell
Nombre
1
Label2 jcom bol

Tipo [Permanente
Label3 |Combo2 3 z\
Estado Civil 1Casado
Command! Command2 ZÏ
Categoria | a -i

PASO N° 02: Asignar las propiedades.


Ingresar Otro Salir
I
EOQUEIA CAPTION
Label 1 Alumno COMBO TEXT LIST
Label2 Especialidad Combol Computación Computación Tipo : Permanente, Contratado, Eventual.
Label3 Turno Arquitectura Estado Civil : Casado, Soltero, Viudo, Divorciado.
Secretariado Categoría : A -l, A-2, A-3 B -l, B-2, B-3.
COMANDO CAPTION Sistemas
Command I &Otro Alumno
Command2 &Finalizar Combo2 Mañana Mañana
Tarde
1EXTO TEXT Noche
Textl En Blanco

224 : G r u p o E d it o r ia l
VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
APLICACION DESARROLLADA N° 29 PASO N° 02: Asignar las propiedades.

EITQUETA CAPITON BORDERSTYLE


Labell Nombre 0 - None
Label2 Tipo 0 - None
Label 3 Pago por Hora 0 - None
Label4 Horas Trabajadas 0 - None
P a g o p o r H o ra [1 5 .0 0
Label5 TOTALA PAGAR 0 - None
Labeló En Blanco 1 - Fixed Single
H o r a s T r a b a ja d a s | ■ Label7 En Blanco 2 - Fixed Single
T 0 TAL A PAGAR f p | COMANDO CAPTION ENABLED
Commandl &Nuevo False
Command2 &Salir True
N uevo S a lir

FIGURA VISIBLE PICTURE


Picture 1 False Gráfico que se indica
La aplicación debe tener las siguientes características:
COMBO TEXT LIST
1. Al ejecutar la aplicación, el gráfico debe estar oculto y el botón Nuevo Combo 1 Permanente Permanente
desactivado hasta que se comience a ingresar el nombre del trabajador. Contratado
Eventual
2. El pago por hora se visualiza en forma automática y depende del tipo de
empleado: Permanente S/.15.00, Contratado S/.10.00 y Eventual SI.
5.00. Ud. Puede cambiar otras propiedades que crea conveniente.
3. No existe el botón Calcular, entonces el total a pagar debe visualizarse PASO N° 03: Escribir las instrucciones de los controles.
automáticamente cuando el usuario ingrese el N° de horas trabajadas o
cuando cambie el tipo de empleado. M UY IM PO R T A N TE:
4. En el número de horas trabajadas no se permite el ingreso de letras (no se El valor cero (0) puede reemplazar al valor False y el valor uno (1) puede
activa el botón Nuevo). reemplazar al valor True. Ejemplo:

Com m andl.Visible=True es igual a Com m andl.Visible=l


PASO N° 1: Dibujar los controles.
Com m andl.Visible=False es igual a Com m andl.Visible=0

Instrucciones del botón Nuevo: limpia las cajas de texto y las etiquetas,
L a b e ll jlT e x t l además muestra el tipo de empleado por defecto y oculta el gráfico.
L a b e l2 jC o m b o l ^ |
Prívate Sub Com mandI_Click()
L a b e l3 L a b e lG ---------- Textl =
Com bol .Listlndex = 0
LabeM |T e x t2
Labeló =
L a b e l5 L a b e l7 Text2 =
Label7 —
Com m andl Com m and2
Picture! .Visible = 0
End Sub
ÍÜ Ü Í> VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
Instrucciones del C om bol: permiten visualizar en forma automática el In stru ccio n es de Text2: Verifica que se ingrese sólo números en las
pago por hora, según el tipo de empleado que se elija y si ya se ingresó las horas trabajas y calcula en forma automática el total a pagar. Se puede
horas trabajas visualiza el total a pagar. realizar la misma operación usando la función ISNUMERIC.

Prívate Sub C om bol_C lick() Prívate Sub Textl_Cliange()


N = Combol .Listlndex I f Trim(Text2) = Or Val(Text2) = 0 Then
Select Case N Command 1.Enabled = 0
‘Si N vale 0 a elegido la primera opción
Else
Case 0
Labeló = "15.00” Command 1.Enabled = 1
Case 1 Label?-Format(Val(Labeló) * Val(Text2), "###,##0.00”)
‘Si N vale 1 a elegido la segunda opción End I f
Labeló = "10.00” E nd Sub
Case 2
‘Si N vale 2 a elegido la tercera opción A P L IC A C IÓ N P R O P U E S T A N° 08
Labeló = “5 .0 0 ”
End Select Si es Soltero debe pedir la edad y el N° de hermanos y si es casado debe
‘Pregunta si no se ha ingresado el pagos por hora pedir el tiempo de casado y el N° de hijos.
I f Trim(Text2) = Then
‘Si no ha sido ingresado pide N" de horas trabajadas
Text2.SetFocus
Nombre Nom bre
Else
‘Si se ha ingresado calcula el total a pagar Estado Civil |Soltero Estado Civil [Casado
Label7 = Format(Val(Labeló) * Val(Text2), "###,##0.00”)
End I f E dad | Tiem po d e Casado j

End Sub N 5 de herm anos | N s d e hijos j

Instrucciones de T extl: Verifica si se ha comenzado a ingresar el nombre.


Si es verdad activa el botón Nuevo y visualiza el gráfico.
N u evo J Sal» J N u evo j Salir

Prívate Sub Textl_Change()


I f Trim( Textl) = Then M U Y IM P O R T A N T E
Command2.Enabled = 0
Pie ture 1.Visible - 0
Else Ud., fo rm ú le se nuevas aplicaciones o intercam bie aplicaciones
Command2.Enabled = 1 p ropuestas entre sus com pañeros y desarróllelas con
Picturel.Visible = 1 la fin a lid a d de enriquecer sus conocim ientos.
End I f

“ E l q u e a p r e n d e y a p r e n d e y n o p r a c tic a , es c om o el
q u e a r a y a r a y n u n c a s ie m b ra ”
o
# • V ISl’AL BASIC como debe ser.. CAPITULO V: Ingreso Personalizado de Datos
APLICACION DESARROLLADA N° 31 PASO N° 02: Asignar las propiedades.

JQI-xJ EITQUEIÄ CAPTION BORDERSTYLE


Labell Profesor 0 - None
Label2 Tipo de Curso 0 - None
Tipo de Curso | a p u w TIVÖS ^ Label3 Nombre del Curso 0 - None
Nombre del Curso |W IN D O W S 95 jr ]
COMANDO CAPTION ENABLED
Command 1 &Nuevo True
Command2 &Salir True
Nuevo Salir

TEXTO TEXT
Textl En Blanco
Esta aplicación permite asignar un curso a cada profesor. Primero se debe COMBO TEXT LIST
ingresar su nombre y luego seleccionar el tipo de curso: Aplicativos, Combol En Blanco En Blanco
Programación, Otros. Según el tipo de curso, se mostrará una lista de cursos: Combo2 En Blanco En Blanco

A PLIC A TIV O S P R O G R A M A C IO N OTRO S Ud. Puede cambiar otras propiedades que crea conveniente.
Windows 95 Foxpro Internet
Word Visual Basic Correo Electrónico
Excel Visual Foxpro Inglés Técnico PASO N° 03: Escribir las instrucciones de los controles.
Power Point Power Builder
Instrucciones del Form JL oad para asignar las propiedades o valores iniciales
IM P O R T A N T E : de cada Combo.
CLEAR : Permite limpiar el contenido de un combo. Prívate Sub Form_Load()
Nombre del Control. Clear ‘Limpia el contenido del combol
A D D 1TE M : Permite adicionar un elemento a un combo. C om bol.C lear
Nombre del Control. Additem “Elemento ” 'Adiciona elementos al combol
Combol.Additem “APLICATIVOS”
En está aplicación de ejem plo, las propiedades de cada combo se Com bol.Additem “PROGRAM ACIÓN”
asignan en el Evento Form_Load. Combo 1.Additem “O TRO S”
‘Limpia el contenido del combo2
PASO N° 1: Dibujar los controles. Combo2.Clear
‘Adiciona elementos al combo2
a ; .=..l.s l->d Combo2.Additem “WINDOWS 9 5 ”
L a b e ll jfT e x t l Combo2.Additem “W ORD”
L a b e l2 [C o m b o l
zJ Combo2.Additem “EXC EL”
Combo2.Additem “P O IN T”
L a b e l3 |C o m b o 2 .... -1 ‘Permite que se visualice el ler. elemento de cada combo
C om m andl | C o m rn a n d 2 I Combo l.Listlndex = 0
Combo2.Listlndex - 0
End Sub

230 G r u p o E d it o r ia l Megabyte-^
¿ S ü t VISUAL BASIC como debe ser... CAPITULO V: Ingreso Personalizado de Datos " llliJ S P '

Instrucciones del Combol para que de acuerdo al tipo de curso que se A P L IC A C IÓ N D E S A R R O L L A D A N° 32


seleccione, se muestre en el combo2 los nombres de los cursos. Una empresa de venta de computadoras necesita un formulario que permita
realizar su proforma. Dicha empresa tiene los siguientes productos:
P r í v a t e S u b C o m b o l _ C l í c k ()
n = C o m b o l. L í s t l n d e x Computadoras Precio Impresoras Precio
S e l e c t C ase n
IBM 850.00 Epson LX-300 180.00'
C ase 0 Packer Bell 700.00 Deskject 400 270.00
Combo2. C 1 ea r 380.00
Acer 600.00 IBM graphics
C o m b o 2 . A d d l t e m "WINDOWS 9 5 "
Combo2 . A d d l t e m "WORD"
C o m b o 2 . A d d l t e m "EXCEL" « t S o it D a ta S .A n s ix i
C o m b o 2 . A d d l t e m "PO IN T" m F e c h a 0 7 /2 3 /9 8
P R O F O R M A
Combo2. L í s t l n d e x = 0
C lie n te |X IM E N A T O R R E S
C ase 1
D ire c c ió n (C A S T IL L A 2 5 6 5
Combo2. C 1ear
C o m b o 2 . A d d l t e m "FOXPRO" C o m p u ta d o ra s | p a c k e r B e ll [ 7 0 0 .0 0

C o m b o 2 . A d d l t e m "V ISU A L B A S I C "


Im p re s o ra s |D e s k je t4 0 0 -■ | 2 7 0 .0 0
C o m b o 2 . A d d l t e m "V ISU A L FOXPRO"
C o m b o 2 . A d d l t e m ”POWER BU ILD ER" S u b T o ta l 9 7 0 .0 0 I.G .V . 1 7 4 .6 0 T o ta l 1 1 4 4 .6 0
Combo2. L í s t l n d e x = 0
C ase 2 C a lc u la r j O tra P ro fo rm a | _______ S a lir |

Combo2. C 1ear
Combo2 . A d d l t e m "I N T E R N E T "
C o m b o 2 . A d d l t e m "CORREO ELECTRÓNICO" • El botón Calcular permitirá obtener el Sub Total, IGV (18%) y el Total.
Combo2 . A d d l t e m "IN G LÉ S TÉCNICO" • El botón O tra Proform a permitirá limpiar los datos y pedir otros.
Combo2. L í s t l n d e x = 0 • El botón Salir finalizará el programa.
End S e l e c t
End Sub
PASO N° 01: Dibujar los controles.
Instrucciones del Commandl (Nuevo), para ingresar un nuevo profesor. I in. Formi m ém
A signa los valores por defecto a cada com bo y para ello, llam a el LabeH Label2
procedimiento Form_Load que contiene dichas instrucciones. —
Labe!3 ¡T e x tl

Label4 |ïe x t 2
P r í v a t e S u b C o m m a n d l _ C l í c k ()
'L i m p i a y u b i c a e l c u r s o r e n T e x t l Label5 I C om bol Label7
T e x tl =
T e x t l . S e tF o c u s LabelB |C om bo2 Labe!8

'L l a m a a l p r o c e d i m i e n t o F o r m _ L o a d
Form _Load L abe l9 L a b e ll 0 L ab e ll 1
End Sub
Com m andl Com m and2 Com m and3 |
En e l command2 s e e sc rib e la in stru c c ió n E N D . 1

232 G r u p o E d it o r ia l Megabvte
|¡ S S ¡ ^ VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
PASO N° 02: Asignar las propiedades. In stru c c io n e s del-C om bo2.
A las etiquetas y botones de comandos, asígneles la propiedad Caption, como Estas instrucciones permiten visualizar el precio de la impresora cuando el
se muestra en la aplicación. usuario la selecciona.

P r i v a t e Sub C o m b o 2 _ C lick()
TEXTO TEXT
Textl En Blanco D im n A s I n t e g e r
Text2 En Blanco n = Combo2. L i s t l n d e x .
S e l e c t C ase n
LINEA BORDEWIDTH C ase 0 : L a b e l8 = " 1 8 0 .0 0 "
Linei 4 C ase 1 : L a b e l8 = " 2 7 0 .0 0 "
Line2 4 C ase 2 : L a b e l8 = "3 8 0 .0 0 "
End S e l e c t
combo text LIST End Sub
Combol IBM IBM
Packer Bell Instrucciones del Botón CALCULAR.
Acer
P r í v a t e S u b C o m m a n d l _ C l i c k ()
Combo2 Epson LX-300 Epson LX-300 D im s t , i g v , t t A s S i n g l e
Deskject 400 s t = V a l(L a b e l7 ) + V a l(L a b e l8 )
IBM graphics i g v = s t * 18 / 100
t t = s t + ig v
Ud. Puede cambiar otras propiedades que crea conveniente. L a b e 19 = "Sub T o t a l " + F o r m a t $ ( s t , " # # # ,# # 0 .0 0 " )
L a b e llO = " I .G .V . " + F o rm a t$ ( i g v , " # # # ,# # 0 .0 0 " )
PASO N° 03: Escribir las instrucciones de los controles. L a b e l l l = " T o ta l " + F o rm a t$ ( t t , " # # # ,# # 0 .0 0 " )
End Sub
In stru ccio n es del C o m b o l.
Estas instrucciones permiten visualizar el precio de la computadora cuando Instrucciones del Botón OTRA PROFORMA.
el usuario la selecciona en el combo N°1 haciendo click. P r í v a t e S u b C o m m a n d 2 _ C l i c k ()
T e x tl = "”
P r í v a t e S u b C o m b o l _ C l i c k () T e x t 2 = ""
D im n A s I n t e g e r 'M u e str a en l o s com bos e l p r i m e r e le m e n to
n = Combo1 . L i s t i n d e x C o m b o l. L i s t l n d e x = 0
Select Case n Combo2. L i s t l n d e x = 0
C ase 0 L a b e l 9 = ”"
L a b e l 7 = "8 5 0 .0 0 " L a b e l l O = ""
C ase 1 L a b e l l l = ""
L a b e l 7 = "7 0 0 .0 0 " T e x t l . S e tF o c u s
C ase 2
End Sub
L a b e l 7 = " 6 0 0 .0 0 "
End S e l e c t
End Sub
El botón SALIR debe tener la instrucción END.

234 G r u p o E d it o r ia l Megabyte'^¡|
w
VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
OPTION BUTTON (BOTON DE OPCION): A P L IC A C IO N D E S A R R O L L A D A N° 33
Si es Soltero debe pedir la edad y el N- de hermanos y su sueldo debe ser
£
S/. 200.00. Si es Casado debe pedir el tiempo de casado y el N- de hijos, su
sueldo debe ser S/. 250.00.
Es un control que permite ingresar datos por selección. De esta forma sólo
se puede seleccionar una opción de un grupo de ellas.
í:i J n jx j
PR IN C IPA LE S PR O PIE D A D E S DE UN O P T IO N BU TTO N:
Nombre Nombre |

ÑAME Estado Civil : Nuevo - Estado Civil:-....... Nuevo


Permite asignarle un nombre. Por defecto el nombre es <• Soltero (a) r Soltero [a)
Optionl, 0ption2, 0ption3 etc. Salir Salir
C Casado [a) (• Casado [a]
A IJ G N M E N T
Para indicar la ubicación del texto y del botón.
CAPTION Sueldo n s ir Sueldo (250.00
Para escribir el texto que acompaña al botón. Edad Tiempo de Servicio |
ENABLED
Para indicar si debe estar activo o no. N! de hermanos N! de Hijos I
FONT
Permite seleccionar el tipo, tamaño y estilo de letra.
FORECOLOR PASO N ’ 1: Dibujar los controles.
Selecciona un color de la letra.
VALUE
Permite saber si un botón ha sido elegido o seleccionado.
VISIBLE
Para indicar si se debe visualizar. Labell |Texti

Framel Commandl I
M UY IM PO R T A N T E
C Optionl
Para preguntar si un botón de opción está seleccionado se utiliza la f ' 0ption2 Command2

propiedad Valué. Por ejem plo, para preguntar si el botón N°1 está
seleccionado se escribe: Label2 LabeB

Label3 |Texl2
I f O p t i o n l . V a lu é = T rue th e n
LabeW |Text3
También se puede preguntar asi: I f O p tio n l th e n
P a ra s e l e c c i o n a r un b o t ó n m e d i a n t e un com ando s e le
a s i g n a e l v a l o r TRUE y p a r a q u i t a r l a s e l e c c i ó n s e le
a s i g n a e l v a l o r FA LSE , E j e m p l o :
PASO N° 02: Asignar las propiedades.
O p tio n l.v a lu e = T r u e o O p tio n l= T ru e Lo s e l e c c i o n a . Asigne las propiedades como se muestra en la aplicación planteada.
O p tio n l,v a lu e = F a ls e o O p tio n l= F a lse Q u ita la s e le c c ió n .

ÉÉÉ^ 236 G r u p o E d it o r ia l Megabyte


O

VISUAL BASIC como debe ser. . . CAPÍTULO V: Ingreso Personalizado de Datos


A P L IC A C IÓ N D E S A R R O L L A D A N° 34
PASO N° 03: Escribir las instrucciones de los controles.
P r í v a t e S u b C o n u n a n d l_ _ C líc k () Esta aplicación permite ingresar dos valores numéricos y según el botón de
T e x t l = "" opción que se elija, se mostrará el resultado.
T e x t 2 = ""
T e x t 3 = ""
O p t i o n l . V a lu é = 1
L a b e 13 = " E d a d "
Labell ( i exl1
L a b e l 4 = "Ns d e H e r m a n o s "
L a b e 15 = " 2 0 0 .0 0 "
T e x t l . S e tF o c u s Label2 |T e xt2

End Sub (• 0 phon1 Label3

Si el usuario hace un click en el botón N° 1, se cambia el contenido de las etiquetas N° C 0pl¡on 2


Label4
1, N° 2 y N° 3 por: Edad, N”de hermanos y 200.00 respectivamente. C 0ption 3
P r í v a t e S u b O p t i o n l _ C l i c k ()
L a b e l3 = "Edad" r 0ption 4 Commandl Command2

L a b e l 4 = "N g d e H e r m a n o s "
L a b e l5 = "2 0 0 .0 0 "
T e x t2 . S e tF o c u s
PASO N’ 01: Dibujar los controles.
End Sub
OPERACIONES ARITMETICAS P its ]
Si el usuario hace un click en el botón N° 2, se cambia el contenido de las etiquetas
V alor N * 01
N° 1, N° 2 y N° 3 por: Tiempo de Servicio, N° de hijos y 250.00
P r í v a t e S u b O p t i o n 2 _ C l i c k () V alor NS 02
L a b e 13 = " T i e m p o d e S e r v i c i o "
L a b e l 4 = "N B d e H i j o s "
C Sum a
L a b e l5 = " 2 5 0 .0 0 " j R E S U LT A D O
T e x t2 . S e tF o c u s (" Resta
End Sub
r* M ultiplica

Si no desea escribir las instrucciones en el evento Click de los botones de opciones, r Divide OK SALIR

puede agregar un botón de comandos (Command3) que realiza lo mismo:


P r i v a t e S u b C o m m a n d 3 _ C lic k ()
I f O p tio n l Then
L a b e 1 3 = "E d a d "
PASO N° 02: Asignar las propiedades.
L a b e l 4 = "N e d e H e r m a n o s "
L a b e l5 = " 2 0 0 .0 0 " PASO N° 03: Escribir las instrucciones de los controles.
Text2.SetFocus
End I f Instrucciones de Commandl (OK):
I f O p tio n 2 T hen P r i v a t e Sub C o m m a n d l_ C lic k ()
L a b e 1 3 = "T ie m p o d e S e r v i c i o " I f O p tio n l Then L a b e l4 = V a l(T e x tl) + V a l(T e x t2 )
L a b e l 4 = "N B d e H i j o s " I f O p tio n 2 Then L a b e l4 = V a l(T e x tl) - V a l(T e x t2 )
L a b e l 5 = " 2 5 0 .0 0 "
I f O p tio n 3 Then L a b e l4 = V a l(T e x tl) * V a l(T e x t2 )
T e x t 2 . S e tF o c u s
I f O p tio n 4 Then L a b el4 = V a l( T e x tl) / V a l(T e x t2 )
End I f
End Sub E nd Sub

G r u p o E d it o r ia l Megabyte(
VISUAL BASIC como debe ser. . . | > CAPITULO V: Ingreso Personalizado de Datos
L A A P L IC A C IO N A D E S A R R O L L A R E S :
C H E C K BOX (CA JA DE V E R IFIC A C IO N ):

P tí
Es un control que permite seleccionar una opción. Se diferencia de los botones
de opciones porque se puede seleccionar varias opciones de un grupo.
VISUAL BASIC
PR IN C IPA L E S PR O PIED A D E S DE UN C H E C K BOX:

ÑAME 1 [Negritai f" Subrayado T~ Cursiva


Permite asignarle un nombre. Por defecto el nombre es
Checkl, Check2, Check3 etc. Salir
AUGNMENT
Para indicar la ubicación del texto y de la caja.
CAPTION
Para escribir el texto que acompaña a la caja. PASO N° 01: Dibujar los controles.
ENABLED
Para indicar si debe estar activo o no. Ê3
PONT’
Permite seleccionar el tipo, tamaño y estilo de letra. L a b e l!
FORECOLOR
Selecciona un color de la letra.
VALUE
Permite saber si una caja ha sido elegida o seleccionada.
VISIBLE
Para indicar si se debe visualizar.
iCheckl r Check2 J— Check3

A P L IC A C IÓ N D E S A R R O L L A D A N° 35
Commandl

Esta aplicación es un ejemplo de cómo se puede usar las cajas de verificación.


Para preguntar si una caja de verificación está seleccionada se utiliza la
propiedad Valué. Para preguntar si la caja de verificación N° 1 está PASO N° 02: Asignar las propiedades.
seleccionada se escribe:
ETIQUETA CAPTION BORDERSTYLE
If Checkl. Valué = 1 Then Labell Visual Basic 1 - Fixed Single
CAJA DE VERIF. CAPTION VALUE
También se puede preguntar de la siguiente manera: Checkl Negrita 0 - Unchecked
Check2 Subrayado 0 - Unchecked
If Checkl Then Check3 Cursiva 0 - Unchecked
COMANDOS CAPTION
A l i g u a l q u e l o s O p tio n B u tto n s e p u e d e n s e le c c io n a r o Commandl &Salir
q u ita r la s e le c c ió n con l o s v a l o r e s TRU E o F A L S E :
FORMULARIO CAPTION
C h e c k l.v a lu e = T r u e o C h e c k l= T r u e Lo selecciona. Formi Estilos de Letra
C h e c k l. v a lu e = F a ls e o C h e c k l= F a ls e Le quita la selección.

® ¡ f ^ 240 G r u p o E d it o r ia l Megabyte
|¡ l l t y ¡ |> VISUAL BASIC como debe ser. . . CAPITULO V: Ingreso ¡
L ISTB O X (CA JA DE LISTA)
PASO N° 03: Escribir las instrucciones de los controles.

Si el usuario hace un click en la caja N° 1, se verifica sí está seleccionada.


Para activar la letra negrita, a la propiedad FontBold de la etiqueta se le Es un control que permite mostrar en una lista un conjunto de elementos o
asigna el valor True. alternativas que el usuario puede seleccionar.
PR IN C IPA LE S PR O PIED A D E S DE UN LISTB O X :
P r í v a t e S u b C h e c k l _ C l i c k ()
l ' f C h e c k l . V a lu é = 1 Then ÑAM E
L a b e1 1 .F o n tB o ld = True Permite asignarle un nombre. Por defecto el nombre es
E lse Listl, List2, List3 etc.
L a b e l l . F o n tB o ld = F a ls e ENABLED
End I f Para indicar si debe estar activo o no.
End Sub FONT
Permite seleccionar el tipo, tamaño y estilo de letra.
Si el usuario hace un click en la caja N° 2, se verifica sí está seleccionada. FO R EC O LO R
Para activar la letra subrayada, a la propiedad FontUnderline de la etiqueta Selecciona un color de la letra.
LIST
se le asigna el valor True. Permite ingresar los elementos o alternativas que el
usuario puede elegir de este control. Por cada elemento
P r í v a t e S u b C h e c k 2 _ C l í c k () que se ingrese se debe pulsar <CTRL> + <ENTER>. Para
I f C h e c k 2 . V a lu é = 1 Then insertar un elemento, ubique el cursor al inicio de
L a b e l l . F o n tU n d e rlin e = True donde lo desea insertar y pulse <CTRL> + <ENTER>.
E lse LISTCOUNT
L a b e l l . F o n tU n d e rlin e = F a lse Permite obteneí el número de elementos de la lista.
End I f LISTINDEX
End Sub Para saber el elemento que el usuario ha elegido. El
valor -1 indica que no se ha seleccionado ningún
elemento, 0 indica el primer elemento, 1 el segundo,etc.
Si el usuario hace un click en la caja N° 3, se verifica sí está seleccionada. SORTED
Para activar la letra cursiva, a la propiedad Fontltalic de la etiqueta se le Para indicar si los elementos deben salir ordenador.
asigna el valor True. STYLE
Para indicar la forma de seleccionar un elemento:
P r í v a t e S u b C h e c k 3 _ C l i c k () O-Standard ó 1-Checkbox. La opción 1-Checkbox permite
I f C h e c k 3 . V a lu é = 1 Then que cada elemento funcione como una casilla de
L a b e l l . F o n t l t a l i c = True verificación.
E lse T O O L T IP T E X T
L a b e l l .F o n t l t a l i c = F a lse Para mostrar un mensaje de ayuda cuando el puntero
End I f del mouse se encuentre sobre el control.
End Sub V ISIB L E
Para indicar si el control se debe visualizar.

G r u p o E d it o r ia l Megabyte^
CAPÍTULO V: Ingreso Personalizado de Datos
A P L IC A C IO N D E S A R R O L L A D A N° 36 Asignar los valores al array; es decir los precios de los pasajes. Se ejecutan
t * V E N T A D E P A S A JE * « 5 3 * 3 1
cuando se activa el formulario.
Al hacer Doble Click o pulsar F7 en cualquier parte libre del formulario elija
A g e n c ia d e T ra n s p o rte " S IN R E T O R N O S .A ."
el evento ACTIVATE.
P a s a je r o ( R u b é n C a s t illo

D .N .I.
Prívate Sub Form_Activate() Instrucciones del Botón Nuevo.
| l 6374657
P R E C IO (0 ) 60 P r í v a t e S u b C o m m a n d l_ C lic k ()
D e s t in o : P R E C IO (1 ) 50
P r e c io 1 5 0 .0 0
L i s t l .L is tln d e x = 0
L im a ^ P R E C IO ( 2 ) 30 C h e c k l.V a lu é = 0
¡ s e r a s * » — P ? [D e s c u e n to ! js .O O
T r u jillo ----- P R E C IO (3 ) 30 T e x t l = ""
P iu r a P R E C IO (4 ) 50 Text2 = ”
T O T A L S /. 4 5 .0 0
End Sub L a b e l7 =
N uevo j S a lir L a b el8 =
L a b el9 =
T e x t l . SetF ocus
D.N.I, y el lugar de destino que se debe seleccionar de una lista, luego debe
End Sub
mostrar en forma automática su precio y opcionalmente un descuento del
10%. Los lugares de destino y su precio son: Lima S/. 60.00, Chimbóte S/.
50.00, Trujillo S/. 30.00, Piura S/. 30.00 y Tumbes S/. 50.00. El precio debe Instrucciones de la Casilla de Verificación (CHECK1), para que al activar
estar almacenado en un array. o desactivar el descuento se visualicen los resultados.
P r í v a t e S u b C h e c k l _ C l i c k ()
PASO N° 1 : D ib u jar los controles. D im D e s , T o t A s S i n g l e
'P r e g u n t a s i t i e n e d e s c u e n t o
I f C h e c k l Then
D es = V a l( L a b e l7 ) * 10 / 100
L a h > a t3 ----------------------- L a b e l8 = F o r m a t(D e s , " # # 0 .0 0 " )
L at»ol3 jT e x t2 Else
L a b e l5 L o b o l7
L a b e l8 = 0
----- I Checkl L o b o ie
End I f
L a b e lB L ab e IS
T o t = V a l(L a b e l7 ) - V a l(L a b e l8 )
L a b e l9 = F o rm a t ( T o t, " # # 0 .0 0 " )
Com m andl | Com m and2 1
E nd S ub ?
N O TA : Instrucciones del Control LIST1, para que al seleccionar un elemento
La barra de desplazamiento vertical del control List se muestra en forma automática cuando no (destino), se visualicen los resultados.
se puede visualizar todos los elementos que contiene.
P r ív a te Sub L is tl_ C lic k ( ) '
D im N A s I n t e g e r
PASO N° 02: A signar las propiedades a los controles. D im D e s , T o t A s S i n g l e
Ud., está en condiciones de asignar las propiedades a los controles como se N = L i s t l . L is tln d e x
muestra en la aplicación a desarrollar. Los elementos se ingresan a la lista L a b e l 7 = F o r m a t( P R E C I O ( N ) , " # # 0 . 0 0 ”)
de la misma forma que en un Combo. Las cajas de texto deben estar en I f C h e c k l Then
blanco. D es = V a l( L a b e l7 ) * 10 / 100
L a b e l8 = F o r m a t(D e s , " # # 0 .0 0 " )
PASO N° 03: E sc rib ir las instrucciones de los controles. Else
L a b e l8 = 0
Definir la variable PRECIO de tipo Array para cinco elementos en la ventana End I f
de declaración del formulario (General - Declarations). T o t = V a l(L a b e l7 ) + V a l(L a b e l8 )
‘CINCO ELEMENTO (DE 0 A 4) L a b e l9 - F o r m a t( T o t, " # # 0 .0 0 " )
Dim PREClO(5) A s Single End Sub

FnrrnRiAr M e g a b y , e « S
wæÆ ï VISU A L BASIC como debe ser.. . CAPÍTULO V: Ingreso Personalizado de Datos
CALCULWiWSDÍAS DE FERTILIDAD SEGÚN ELMÉTODODELRITMO in s tru c c io n e s de lo s b o to n e s

BOTÓN P E R IO D O M EN STRU A L REGULAR


G C liíS MENSTRUALES REGULARES Prívate Sub Commandl_Click()
Si una mujer tiene ciclos Menstruales Regulares, sus días probables de fertilidad empiezan Dim fecha As String
a losódíasde su primer día de menstruación y duran 13 días. Por ejemplo: Si su primer Dim R, X As Integer
día de menstruación fue el 01 de Oct, sus días fértiles empiezan el 7 de Oct y terminan en Listl.Clear : ListíC lear : List3.Clear
19deOct. fecha = InputBox(“Ingrese la Fecha del Primer Día” + Chr(13) + “ de la
última menstruación”, “MENSTRUACION REGULAR”)
If Not IsDate(fecha) Then
OCLQ8 MENSTRUALES IRREGULARES MsgBox “HA INGRESADO UNA FECHA INCORRECTA”, 16, “CUIDADO”
Para determinar los días probables de fertilidad en mujeres con ciclos Menstruales Else
R = MsgBox(“ ler. Día de Menstruación + Format(CDate(fecha), “Long
Irregulares, se tiene que saber cuál es el período de días mas largo y mas corto en los Date”), 36, “ES LA FECHA CORRECTA”)
últimos 6 (seis) ciclos menstruales. A la cantidad de días mas corto se le resta 18 If R = 6 Then
(dieciocho) para obtener a los cuantos días de su primer día de menstruación empieza Labell=” ler. Día de Menstruación:”+Format(CDate(fecha),”Long Date”)
sus días fértiles y al periodo de días mas largo se le resta 11 (once) para obtener a los Frame2 = “DIAS PROBABLES EN CICLO MENSTRUAL REGULAR DE: “
For X = 0 To 5
cuantos días de su primer día de menstruación terminan sus días fértiles. Por ejemplo, Listl.Addltem (CDate(fecha) + X) 'DIAS PROBABLES DE NO FERTILIDAD
si el periodo de días mas corto fue de 24 días y el ciclo mas largo fue de 32 días, Next X
entonces, sus días fértiles empiezan a los seis días de su primer día de menstruación For X = 6 To 18
(contando uno el primer día de su menstruación) y terminan a los 21 días de iniciado su List2.AddItem (CDate(fecha) + X) ‘DIAS PROBABLES DE FERTILIDAD
Next X
periodo menstrual. For X = 19 To 27
■». M t T O D O " D E L R I T M O " O M E T O D O " N A T U R A L " List3.AddItem (CDate(fecha) + X) ‘DIAS PROBABLES DE FERTILIDAD
D I A i» P R O B A R L E S D E E E R T I I ID A D E N Next X
M itr.* liu « c ió n l l r g u l . « I M c n iliu o c ió n lii a g u la i
End If
E n d lf
End Sub
r D Ía d o M e n stru ac ió n : D o m in g o , 2 3 ck» E n e r o d e 2 0 0 0

•A S P R O B A B L E S E N C IC L O M E N S T R U A L R E G J L A R D E : ..............................
BOTÓN PERIODO MENSTRUAL REGULAR
NO FER TILID AD F E R T IL ID A D NO FER TILID AD
Prívate Sub Command2_Click()
2 3 /0 1 /0 0 2 9 /0 1 /OU 1 1 /0 2 /0 0
Dim fecha As String
2 4 /0 1 /0 0
2 5 /0 1 /0 0
3 0 /0 1 /0 0 1 2 /0 2 /0 0 Dim L, C, INICIO, FINAL, R, x As Integer
2 6 /0 1 /0 0
3 1 /0 1 /0 0
0 1 /0 2 /0 0
1 3 /0 2 /0 0
1 4 /0 2 /0 0 C = Val(InputBox(“Número de días más corto”,"DE LOS ULTIMOS 6 CICLOS MENSTRUALES"))
2 7 /0 1 /0 0
2 8 /0 1 /0 0
0 2 /0 2 /0 0
0 3 /0 2 /0 0 —
1 5 / 0 2 /0 0
1 6 /0 2 /0 0
L = Val(InputBox(“Número de días más largo “, “DE LOS ULTIMOS 6 CICLOS MENSTRUALES'))
0 4 /0 2 /0 0
0 5 /0 2 /0 0
1 7 /0 2 /0 0
1 0 /0 2 /0 0
INICIO = C - 18
0 6 /0 2 /0 0 JT J 1 9 /0 2 /0 0 FINAL = L - 11
MsgBox “El período fértil empieza a los “ & INICIO & “ días de la menstruación” & Chr(13) & “ y
FUENTE O B S T E T R IZ M at a lla n a H u rta d o - C o p . 7 5 9 7 S e i v icio d e C o n se je ría IN N P A R E S * C hiciayo termina después de “ & FINAL & “ dias de tu mestruación”, 64, “CUlDAIX V’
fecha=InputBox(“ingresa ek día de tu última menstruación”,’’MENSTRUACION IREGULAR”)
D IA S P R O B A B L E S D E F E R T I L I D A D E N
If Not IsDate(fecha) Then
MsgBox “HA INGRESADO UNA FECHA INCORRECTA ”, 16, “CUIDADO”
M e n s tr u a c ió n R é g u la i M e n s t r u a c i ó n li r é g u l a i
Else
If R = 6 Then
1 et. D í a d e M e n stru ac ió n : M a lte s , 0 4 d e E n e r o d e 2 0 0 0
P e ó o d o m a s c o ito : 2 6 d í a s y p e í io d o m a s largo: 31 d ía s Labell = “ 1er. Día de Menstruación: “ + Format(CDate(fecha), “Long Date”)
Labell = Labell & Chr(13) & “Periodo mas corto: “ & C & " días y
D IA S P R O B A B L E S E N C I C L O M E N S T R U A L I R E G U L A R D E . periodo mas largo: “ & L & “ días”
N O FER TILID A D F E R T IL ID A D N O FERTILID AD Frame2 = “DIAS PROBABLES EN CICLO MENSTRUAL IREGULAR DE: “
0 4 /0 1 /0 0
0 5 /0 1 /0 0
1112/0
/011/0
/000 2 5 / 0 1 /0 0 For x = 0 To INICIO - 2
0 6 /0 1 /0 0 1 3 /0 1 /0 0
2 6 / 0 1 /0 0
2 7 / 0 1 /0 0 Listl.Addltem (CDate(fecha) + x) ‘DIAS PROBABLES DE NO FERTILIDAD
0 7 /0 1 /0 0
0 8 /0 1 /0 0
1 4 /0 1 /0 0
1 5 /0 1 /0 0
2 8 / 0 1 /0 0
2 9 / 0 1 /0 0
Next x
0 9 /0 1 /0 0
10/01/00 1 6 /0 1 /0 0
1 7 /0 1 /0 0
3 0 / 0 1 /0 0 For x = INICIO - 1 To FINAL
3 1 / 0 1 /0 0
1 8 /0 1 /0 0 0 1 /0 2 /0 0 List2.AddItem (CDate(fecha) + x) ‘DIAS PROBABLES DE FERTILIDAD
1 9 /0 1 /0 0 02/02/00 Next x
For x = FINAL + 1 To 30
FUENTE O B S T E T R IZ : S u s a n a M a ta l a n a H u rla d o - C o p 7 5 9 7 S e iv ic io d e C o n se je ría IN N P A R E S - C N d a y o
List3.AddItem (CDate(fecha) + x) ‘DIAS PROBABLES DE FERTILIDAD
Next x
Para desarrollar esta aplicación, dibuje en un formulario 2 controles Frame, 2 boto­ End If
nes de comandos, 4 etiquetas y 3 ListBox. End If
End Sub

► 246 G r upo E ditorial Megabyte^


iÉÉÉÍÉÍ» VISUAL BASIC como debe ser... CAPÍTULO V: Ingreso Personalizado de Datos
U PD O W N BUDDYCONTROL
Se utiliza para escribir el nombre de un control que se encuentre dibujado en
1: el formulario y con el cual desea relacionar el control UpDown. Por ejemplo,
si tiene dibujado 5 cajas de texto y desea relacionar el control con Text3,
Este control muestra dos botones con flechas que nos permiten incrementar entonces debe escribir Text3 o el nombre que le a asignado en Ñame.
o disminuir un valor. Se puede relacionar o no con otro control como por A U TOBUD DY
ejemplo con una caja de textos para que funcionen como un solo control. Permite que el control UpDown se relacione automáticamente con el control
que usted ha dibujado inmediatamente antes o despues de dibujar del
PR IN C IPA L E S PR O PIE D A D E S D E C O N T R O L U PDO W N : control UpDown.
Las propiedades principales del control se obtiene con sólo elegir la propiedad SYNCBUDDY
Custumize (personalizado). Se visualiza una ventana con tres hojas o fichas: Se utiliza para indicar si la propiedad Valué del control UpDown debe estai
General, Relaciones y Desplazamiento. sincronizada con la propiedad predeterminada o seleccionada del control
con el que se encuentra relacionado. Si se relaciona con una caja de textos,
la^TTiT-Tl-'MdJ I II I I I I I ■ ■ ■ ■ ■ ■ ■ ■ ■ E l la propiedad predeterminada es Text, esto quiere decir que en la propiedad
General | Relaciones | Desplazamiento j
Text de la caja de texto se muestra el valor la propiedad Valué del control
UpDown.
Qriontntíon |0 c-c20r¡©n»«t¡onV©r»icoil _~]
B U D D Y PR O PERTY
OLEDrouM ode jü - cc20LED ropN one j- ] Se utiliza para seleccionar una propiedad para la relación diferente a la
predeterminada.
El contenido de la hoja Desplazamiento es:
r-j'.i.mi'. f 'i'i'.mumiii.Kiii.i-'— m ^ — í^ n — a— ■i
_J C a n c e la r j ______________|A y u d a G en e ra ! | R elaciones D e s p la za m ie n to |

In te iva lo d e d e s p la z a m ie n to ,

y e lu e M in: M ax
A L IG M E N T B fó fu l r Wmp
Coloca el control UpDown a la derecha o izquierda del control con el que se
ha relacionado. T a s a d e d e s p la z a m ie n to
In c re m e n t j
O R IE N T A T IO N
Coloca el control en forma vertical o en forma horizontal ! ir'
O LEDROPM O DE
Devuelve o establece el modo en que un componente de destino realiza las | A ce p ta r j Cancetai' J Aphj. y | A y ix l .

operaciones de colocación. VALUE


Contiene un valor que depende de los botones donde se hizo clíck. Este
E l contenido de la hoja Relaciones es: valor se visualiza en el control relacionado.
M IN
G e n e ra l R e la c io n e s JD e s p la z a m ie n to j Se utiliza para indicar el valor mínimo para el control UpDown.
B u d d y C o n tro l | M AX
f~ ÍAutoBu¿cíyj í~ Se utiliza para indicar el valor máximo para el control UpDown.
W RAP
I □ Esta propiedad permite establecer si el valor regresa al valor mínimo cada
vez que se llegue al valor máximo o viceversa.
IN C R E M E N T
Esta propiedad permite establecer el valor del incremento o decremento
I A c e p ta r | C a n c e la r | A p liç a r j Ayuda
para cada vez que se haga clik en los botones del control UpDown.

248 G r u p o E d it o r ia l Megab
íM B á ? VISUAL BASIC como debe ser... > CAPÍTULO V: Ingreso Personalizado de Datos Í s S S Í Í P
Ejemplo: Si en la propiedad Mask Ud., escribe:
M A SK E D B O X
#### .- Permite ingresar cuatro dígitos.
##| ???? .- Permite ingresar cuatro letras.
##??## .- Permite ingresar dos dígitos, luego dos letras y
Este control permite ingresar y visualizar datos con un formato determinado. luego dos dígitos mas.
Si no le asignamos ningún formato de ingreso o visualización se comporta de ##/##/## o ##-##-## .- Facilita el ingreso de un fecha, pero
una manera similar al de una caja de textos. no controla si la fecha ingresada es correcta.
##:##.## .- Facilita el ingreso de las horas,minutos y
segundos, pero no controla si se ingresada correctamente.
PR IN C IPA L E S PR O PIE D A D E S D E L C O N T R O L M ASK ED BOX :
###,###.## .- Facilita el ingreso de cantidades utilizando
miles y dos decimales.
FORMAT >?<??????? .- Permite ingresar ocho letras, la primera la
Sirve para seleccionar el formado de visualización de los convierte a mayúscula y el resto en minúsculas.
datos. Estos datos pueden ser de tipo numérico, fecha, hora \<####\> .- Permite ingresar cuatro dígitos entre los signos
y texto. Por ejemplo: Formato monetario $#,##0.00; ($#,##0.00) mayor y menor.
Utiliza separador de miles; presenta los números negativos entre paréntesis. ##CAAAAA .- Permite ingresar dos dígitos, -un espacio (opcional)
Formato de porcentaje. 0% y luego cinco valores alfanuméricos (letras o números).
Multiplica el valor por 100 y agrega un signo de porcentaje.
Formato de fecha largo, dddddd NOTA:
Ejemplo: Domingo 13 de Junio de 1999 Para borrar dentro de un programa el contenido de este control, primero debe borrar lo que
Formato de fecha medio, dd-mrm-yy contiene en la propiedad Mask y luego se borra lo que contiene la propiedad Text.
Ejemplo: 13-Jun-99.
Formato de fecha corto, ddddd
Ejemplo: 13/06/99. MaskedBox 1.Mask =""
Formato de hora largo, tttt MaskedBox 1.Text=""
Ejemplo: 1:30:42 A.M.
Formato de hora medio. hh:mm AM/PM ALLOW PROM PT
Ejemplo: 1:30 A.M. Se utiliza para indicar el carácter de petición se puede considerar como un
Formato de hora corto. hh:mm ingreso válido.
Ejemplo: 1:30. PRO M PTCH A R
Se utiliza para indicar el carácter de petición de los datos. El carácter
MASK predeterminado es el subrayado (_), pero Ud., puede utilizar cualquier otro
Sirve para asignar un formado para ingresar datos. carácter.
Los caracteres más utilizados son:
# .- Indica que sólo se deben ingresar dígitos. M UY IM PO R T A N TE
? .- Indica que sólo se deben ingresar letras.
. .-Se utiliza para separar decimales. Si no desea visualizar ningún carácter de petición de datos, borre el carácter
, .- Se utiliza para separar miles. que se encuentra en la propiedad PromptChar y luego pulse la tecla ALT y
: .-Se utiliza para separar en las horas. el número 255.
/ .-Se utiliza para separar en las fechas.
En los cuatro caracteres anteriores verifique la configuración P R O M P T IN C L U D E
de su computadora (Configuración regional).
A .-- Indica que sólo se deben ingresar letras o números. Se utiliza para indicar si al referirnos al contenido de la propiedad Text se va
> .- Convierte las siguientes letras amayúsculas. a tomar en cuenta el carácter de petición.
< .- Convierte las siguientes letras aminúsculas.
C .- Indica que sólo debe aceptar espacios. NOTA:
\ .- Permite incluir cualquier carácter anterior dentro de ( uando se ingresa un valor incorrecto; es decir, no cumple el formato establecido, entonces
la máscara. se ejecutan las instrucciones del evento ValidationError.

250 G rupo E ditorial M e g a b y t e < | ¡ ¡ ¡ ^


como debe ser... CAPITULO V: Ingreso Personalizado de Datos ^ ¡¡
PASO N° 2: Asignar las propiedades a los controles.
APLICACION DESARROLLADA N° 37
iü, IN G R E S O DE P A C IE N T E S
AL formulado, frame, etiquetas y botones de comandos asígneles la propiedad
E s ìz i
Caption como se muestra en la aplicación a desarrollar.
N o m b re d e l P a c ie n te jjO R G E R IO S
Las cajas de texto: Text2, Text4 y Textó deben tener en su propiedad
F e c h a d e In g re s o |0 4 /0 8 /1 9 99 - A c tu a liz a r e l S is te m a j] BorderStyle el valor 0-None y en su propiedad Width el valor 200.
H o ra d e In g re s o (2 4 H s .) 1 6 :2 0 :1 5 - I
A c tu a liz a r e l S is te m a Las cajas de texto: Text3 y Text5 deben tener en su propiedad BorderStyle
3
S a la N s [ I - 1 2 ) el valor 0-None, en su propiedad Width el valor 90 y en su propiedad Texl
N uevo
dos punto (:).
A s e g u ra d o ( S / N ) ? S alir
Las cajas de texto desde Text2 hasta Textó, deben estar lo mas juntas
D a lo s d e l S is te m a :
Fecha j M ié rc o le s 4 d e A g o s to d e 1 9 9 9 H o ra 1 6 :2 0 :3 0
posibles. Esto lo puede lograr usando la propiedad Left.
Los controles UpDown 1 y UpDown2 no deben tener ninguna propiedad
porque no están ligados a ningún control, trabajan en forma independiente.
Debe tener las siguientes características:
El control UpDown3 está ligado al control Text7, por lo tanto, debe tener las
1. La Fecha y la hora de ingreso se pueden modificar con el control UpDown. siguientes propiedades:
2. Para actualizar la hora el usuario debe ubicar primero el cursor en las horas,
minutos o segundos. En forma predeterminada se modifican los segundos. UPDOWN BUDDYCONTROL SYNCBUDDY BUDDYPROPERTY MIN MAX WRAP
3. Para ingresar la sala se deben utilizar un caja de textos y un control UpDown. UpDown3 Text7 True Predeterminado 1 12 True
4. En Asegurado sólo se debe aceptar las letras S(si) o N(no).
Las propiedades de los controles MASKEDBOX son:
5. Los botones Actualizar el Sistema, deben actualizar la fecha y hora del
sistema. FORMAT MASK ENABLED
MASKEDBOX
6. Se deben visualizar la fecha y hora del sistema. MaskedBoxl En Blanco #/# # /# # # # True
MaskedBox2 En Blanco >? True
PASO N° 1: Dibujar los controles. MaskedBox3 dddddd En Blanco False
Maskedbox4 ttttt En Blanco False

PASO N° 3: Escribir las instrucciones para los controles.

Definir las variables a nivel de formulario:


jjl Proyeclol - Form! (Código) m u
(General) (Declaraciones)

O ption E x p l ic i t
Dim CAJA, HORAS, MINUTOS, SEGUNDOS As Byte
Dim FECHA As Date

NOTA: Cuando dibuje los controles MaskedBox, no se visualizaran los nombres


(salen en blanco).

S i G rupo E ditorial M e g a b y t e « *
CAPÍTULO V: Ingreso Personalizado de Datos
Instrucciones del Control UpDown2
Instrucciones del Procedimiento M U ESTRA TIEM PO
Al hacer click en la flecha hacia abajo disminuye las horas, los minutos o
S u b MUESTRATIEMPO () segundos, dependiendo de donde se encuentre el cursor. En form a
T e x t 2 = F o r m a t(H O R A S , " 0 0 " )
T e x t 4 = F o r m a t( M IN U T O S , " 0 0 " )
predetermina disminuyen los segundos.
T e x t 6 = Form a t(S E G U N D O S, " 0 0 " ) P r í v a t e S u b U p D o w n 2 _ D o w n C l i c k ()
End Sub S e l e c t C a s e CAJA
C ase 2
Instrucciones del evento Form_activate HORAS = HORAS - 1
I f HORAS = - 1 T h e n HORAS = 23
P r í v a t e S u b F o r m _ A c t i v a t e () C ase 4
T i m e r l . I n t e r v a l = 1000 'A c t i v a l a s i n s t r u c c i o n e s d e l T im er MINUTOS = MINUTOS - 1
CAJA = 6 'L o s s e g u n d o s d e m o d i f i c a n e n fo r m a p r e d e t e r m i n a d a I f MINUTOS = - 1 T h e n MINUTOS = 59
FECHA = D a t e C ase 6
SEGUNDOS = SEGUNDOS - 1
M a s k E d B o x l . T e x t = Format(FECHA, " d d / m m / y y y y " ) I f SEGUNDOS = - 1 T h e n SEGUNDOS = 5 9
M a sk E d B o x 2 . T e x t = "N" End S e l e c t
M a s k E d B o x 3 . T e x t = D a t e 'M u e s t r a l a F e c h a d e l S i s t e m a MUESTRATIEMPO
M a s k E d B o x 4 . T e x t = T im e 'M u e s t r a l a H ora d e l S i s t e m a End Sub
HORAS = H o u r ( T im e )
MINUTOS = M i n u t e ( T i m e ) Al hacer click en la flecha hacia arriba aumentan las horas, los minutos o
SEGUNDOS = S e c o n d ( T i m e ) segundos, dependiendo de donde se encuentre el cursor. En form a
MUESTRATIEMPO predetermina aumentan los segundos.
T e x t l = ""
P r í v a t e S u b U p D ow n2 _U p C lic k ()
T e x t7 = 1 S e l e c t C a s e CAJA
T e x t l . S etF o cu s C ase 2
End Sub HORAS = HORAS + 1
I f HORAS = 24 T h e n HORAS = 0
Instrucciones del Control Timer C ase 4
MINUTOS = MINUTOS + 1
'Muestra la hora del sistema I f MINUTOS = 6 0 T hen MINUTOS = 0
P r í v a t e S u b T i m e r l _ T i m e r () C ase 6
M a sk E d B o x 4 . T e x t = T im e SEGUNDOS = SEGUNDOS + 1
End Sub I f SEGUNDOS = 6 0 T h en SEGUNDOS = 0
E nd S e l e c t
Instrucciones del Control UpDownl MUESTRATIEMPO
End Sub
'A l h a c e r c l i c k e n l a f l e c h a h a c i a a b a j o d i s m i n u y e l a f e c h a .
P r í v a t e S u b U p D o w n l_ D o w n C lic k () Instrucciones del Botón Actualizar el Sistema (Fecha)
FECHA = C V D a t e ( M a s k E d B o x l . T e x t ) - 1 P r í v a t e S u b C o m m a n d l _ C l i c k ()
D a t e = C V D a t e ( M a s k E d B o x l .T e x t )
M a s k E d B o x l . T e x t = Format(FECHA, " d d / m m / y y y y " ) M a sk E d B o x 3 . T e x t = D a t e
E nd S u b End S u b
'A l h a c e r c l i c k e n l a f l e c h a h a c i a a r r i b a a u m e n ta l a f e c h a . Instrucciones del Botón Actualizar el Sistema (Hora)
P r í v a t e S u b U p D o w n l_ U p C lic k () P r í v a t e S u b C o m m a n d 2 _ C lic k ( )
FECHA = C V D a t e ( M a s k E d B o x l . T e x t ) + 1 HORAS = V a l ( T e x t 2 )
MINUTOS = V a l ( T e x t 4 )
M a s k E d B o x l . T e x t - Format(FECHA, " d d / m m / y y y y " ) SEGUNDOS = V a l ( T e x t 2)
E nd S u b Time = CVDate ( S t r (HORAS) +":"+Str (MINUTOS) +*: "+Str (SEGUNDOS))
M a sk E d B o x 4 . T e x t = T im e
E nd S u b

254 G rupo .............R, a l M e g a b y te # *


Í ¡ f Í ^ VISUAL BASIC como debe ser. . . < 3§ CAPÍTULO V: Ingreso Personalizado de Datos '%

Instrucciones del Control M askEdB oxl INSTRUCCIÓN SENDKEYS


Al dejar de ingresar la fecha de ingreso, verifica que la fecha es correcta.
Hace que Visual Basic considera que se han pulsado teclas com o si
P r í v a t e S u b M a s k E d B o x l _ L o s t F o c u s () hubiésemos utilizado el teclado. Esto quiere decir que con esta instrucción
I f N o t ( I s D a t e ( M a s k E d B o x l . T e x t ) ) T hen podem os presionar autom áticam ente las teclas ENTER, ESCAPE,
M sgB ox "No e s una f e c h a C o r r e c t a " , 1 6 , "R ec tifiq u e " BACKSPACE, TAB, etc., o escribir algún texto sin que el usuario, es decir,
M a skE d B o xl. S e tF o c u s la persona que esta usando la computadora lo haga. Por ejemplo, para enviar
E nd I f el texto Visual, se escribe: SendKeys "Visual”
Erid S u b
Los signos más(+), intercalación(A), porcentaje(%), tilde(~), los paréntesisO
y las teclas especiales deben de estar entre llaves ({}). Debe utilizar el
Instrucciones del Control M askEdBox2
nombre correcto de las teclas especiales en mayúsculas o minúsculas.
Permiten que sólo se ingresen las letras N o S.
TECLA NOMBRE TECLA NOMBRE
P r í v a t e Sub M a skE d B o x2 _ K eyP ress(K eyA scii A s I n t e g e r ) RETROCESO {BACKSPACE}, {BSJ INSERT {INSERT} o {INS}
Dim K A s I n t e g e r INTER (BREAK) FLECHA IZQ {LEFT}
K = A s e (U C a se (C h r (K e y A s c i i ) ) ) BLOQM AYÚS ¡CAPSLOCKj BLOQ NÚM {NUMLOCK}
SUPR (DELETE} o (DEL) RE PAG {PGDN}
I f N o t (K = 83 Or K = 78 Or K = 2 7 Or K = 13 Or K = 8) Then
FLECHA ABAJO (DOWN} AVPÁG {PGUP}
K e y A s c i i = 0 'I n g n o r a e l c a r a c t e r i n g r e s a d o IMPR PANT {PRTSC}
FIN (END)
E nd I f {ENTER}o ~ FLECHA DER {RIGHT}
ENTRAR
E nd S u b ESC {ESC} BLOQ DESPL {SCROLLLOCK}
AYUDA {HELP} TAB {TAB}
Instrucciones de las Cajas de Texto INICIO (HOME) FLECHA ARRIBA {UP}
Al ubicar el cursor en una caja de textos la variable Caja indica dónde de
Las teclas de función Fl, F2, etc., tienen el mismo nombre.
hizo Click y selecciona lo que contienen. Ejemplos:
Las siguientes instrucciones ubican el cursor en Textl y pulsan en
P r i v a t e S u b T e x t2 _ G o tF o c u s () P r i v a t e S u b T e x t 4 _ G o t F o c u s () forma automática la tecla TAB.
CAJA=2 'H i z o c l i c k e n T e x t 2 CAJA=4 ' H i z o c l i c k e n T e x t 4 Textl.setfocus
Sendkeys "{TAB}"
T e x t2 . S e lS ta r t = 0 T e x t4 .S e lS ta r t = 0 Las siguientes instrucciones ubican el cursor en el Command2 y pulsan
T e x t2 . S e lL e n g th = T e x t 4 . S e lL e n g th = L e n (T ext4 ) en forma automática la tecla ENTER que equivale a hacer click, por lo
L e n ( T e x t2) T ext4 = T e x t 4 . S e i T e x t tanto ejecutarán las instrucciones que se encuentran en dicho botón
T e x t2 = T e x t2 . S elT exc E nd S u b de comandos.
End Sub Command2.SetFocus
SendKeys ''{enter}"
P r i v a t e S u b T e x t 6 _ G o t F o c u s () P r i v a t e S u b T e x t 7 _ G o t F o c u s () La siguiente instrucción pulsa en forma automáticas las teclas 'Í’AB y
ENTER:
CAJA=6 'H i z o c l i c k e n T e x t 6 T e x t7 . S e lS ta r t = 0 SendKeys "{tab}{enter}"
T e x t6 .S e lS ta r t - 0 T e x t7 . S e lL e n g th = L en (T ext7 ) Para combinar las teclas con CTRL, MAYÚS (SHIFT) y ALT, debe escribir
T e x t 6 . S e lL e n g th = L e n (T extß ) T ext 7 = Text 7 .S ei Text primero el código de la tecla:
Text 6 = Text 6 .Sei Text End Sub CTRL (CONTROL) A MAYÚS (SHIFT) + ALT %.
End Sub Y luego el nombre de la tecla que desea entre paréntesis. Por
ejemplo, La siguiente instrucción pulsa en forma automática F4,
manteniendo presionada la tecla ALT. S e n d K e y s "% ({F 4}) “
I n s t r u c c i o n e s d e l B o t ó n Nuevo La siguiente instrucción mantiene presionada la tecla Shift, mientras
P r i v a t e S u b C o n m a n d 3 _ C l i c k () escribe la palabra trabajo. S e n d K e y s "+ ( t r a b a j o ) "
F o rm _ A c tiv a te
End Sub Se puede indicar también la cantidad de veces que desea que se pulse
la tecla. Por ejemplo, la siguiente instrucción pulsa 6 veces la
tecla BACKSPACE: S e n d K e y s "(B S 6} "
E l Botón salir debe tener la instrucción END.

256 G ru po E d it o r ia l Megabyte
i y ,SY.VIL BA SIC como debe ser.
A P L IC A C IO N D E SA R R O L L A D A N° 38 Instrucciones del procedim iento Form _Activate
P r i v a t e S u b F o r m _ A c t iv a t e ()
Esta aplicación permite ingresar datos, pero tiene un botón que hace una Rem D a to s a v i s u a l i z a r e n l a d e m o s t r a c i ó n
demostración de cómo ingresarlos. NOMBRE = "OLGA UBILLUS D. "
EDAD = "25 ANOS"
DIRECCION = "A v. IMELDA LOPEZ 2 8 5 "
TELEFONO = "2 2 2 3 2 4 "
Nombre
r DATO = 1
Y = 0
E d ad
T e x tl = : T e x t 2 = "" : T e x t3 = "" : T e x t4 =
D irección
(Demostración C o m b o l. L i s t l n d e x = 0 : T e x t l . S e tF o c u s
T eléfoho End Sub

Estudios j Primaria Instrucciones del botón Dem ostración.


P r i v a t e S u b C o m m a n d 3 _ C lic k ()
N u e vo S a lir F o r m _ A c tiv a t e
C om m andl. E n a b le d = F a l s e
C omm and2. E n a b le d = F a l s e
C omm and3. E n a b le d = F a l s e
PASO N° 1: Dibujar los controles. T im e r 1 . I n t e r v a l = 10 0
End Sub
-IPI *1
Lab e ll ¡T e x tl
Instrucciones del-control T im erl
P r i v a t e S u b T im e r l _ T im e r ()
Label2 |T e x t2 Y = Y + 1
Label3 |T e x t3
S e l e c t C a se DATO
Com m and3
C a se 1
Labe!4 | f ext4 S e n d K e y s M id (NOMBRE, Y, 1)
LabeIS
I f Y = L e n (NOMBRE) T h en CAMBIO
C om bol
" 3 :: C a se 2
S e n d K e y s M id (EDAD, Y, 1)
Com m and! Com m and2 I f Y = L e n (EDAD) T h en CAMBIO
C a se 3
S e n d K e y s M id (DIRECCION, Y, 1)
I f Y = L e n (DIRECCION) T h en CAMBIO
C a se 4
PASO N° 2: Asignar las propiedades a los controles. S e n d K e y s M i d (TELEFONO, Y, 1)
A las etiquetas y botones de comandos asígneles su propiedad Caption como I f Y = L e n (TELEFONO) T hen CAMBIO
C a se 5
se muestra en la aplicación a desarrollar. T i m e r l . I n t e r v a l = 700 'A m p lia e l i n t e r v a l o d e tie m p o
El C om bol debe tener en su propiedad List, los valores: Prim aria, S e n d K e y s " ( { f 4 } ) " 'M u e s tr a l o s e l e m e n t o s d e l Combol
Secundaria y Superior. DATO = DATO + 1
C a se 6
S e n d K e y s " ( { dow n })"
PASO N" 3: Escribir las instrucciones para los controles. DATO = DATO + 1
C a se 7
Definir las variables a nivel de formulario. S e n d K e y s " ( {dow n })"
P u b l i c DATO, Y, N A s B y t e DATO = DATO + 1
P u b l i c NOMBRE, EDAD, D IR EC C IO N , TELEFONO A s S t r i n g C a se E l s e
T im e r l. I n te r v a l = 0
C om m andl. E n a b le d = T r u e
Procedimiento Cambio Instrucciones del botón Nuevo Command2. E n a b le d = T r u e
S u b CAMBIO () P r í v a t e S u b C o m m a n d l _ C l í c k () Command3.E n a b le d = T r u e
DATO = DATO + 1 F o rm _ A c tiv a te C om m andl. S e tF o c u s
End S e l e c t
Y = 0 End Sub End Sub
SendK eys " { TAB }'
End Sub

258 259 « ¡ g »
G r u p o E d it o r ia l Megabyte*
O
VISUAL BASIC como debe ser.. CAPÍTULO V: Ingreso Personalizado de Datos
A P L IC A C IO N D E SA R R O L L A D A N° 39
ARRASTRAR Y COLOCAR
Esta aplicación consiste en el juego “TRES EN RAYA” para lo cual se
Para que usted pueda desarrollar programas donde se permita Arrastrar y utiliza el proceso de Arrastrar y Colocar.
Colocar Objetos, primero debe saber siguiente:
yjS*í
EVENTO DRAGDROP
Es un evento cuyas instrucciones que contiene se ejecutan cuando se termina
el proceso de Arrastrar y Colocar. ü? r ■***«
Recibe normalmente tres valores en las siguientes variables:
SOURCE: Es una variable que representa al control que se esta arrastrando. r~m r fe
Puede utilizar esta variable para asignar valores a las propiedades de dicho ix : r p ^
control.