Programacioncon Visual Basic 6

3,433 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,433
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
365
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Programacioncon Visual Basic 6

  1. 1. Desarrollo de software Texto diseñado para enseñar en profundidad a desarrollar aplicaciones basadas en lenguaje Visual Basic. El texto cubre tanto aspectos básicos como avanzados, es decir que no sólo se estudian los fundamentos del lenguaje sino que también se tratan en profundidad el acceso a datos, la programación orientada al objeto, los componentes ActiveX, el acceso al API, etc. Se trata de un manual de muy amplio contenido con alrededor de 1000 páginas de documentación, además de numerosos ejemplos listos para ser cargados desde Visual Basic. Entre los requisitos previos, conocimientos basta con de fundamentos de y conocer al programación menos un lenguaje, sea este el que sea y conocer el S.O. Windows a nivel de usuario. PROGRAMACIÓN CON VISUAL BASIC 6
  2. 2. Programación con Visual Basic Versión 1.0.0 2000 © Grupo EIDOS www.LaLibreriaDigital.com
  3. 3. Índice ÍNDICE................................................................................................................................................... 5 INTRODUCCIÓN ............................................................................................................................... 17 INTRODUCCIÓN A LA PROGRAMACIÓN EN WINDOWS CON VISUAL BASIC ........................................ 17 EL SISTEMA CONTROLA A LA APLICACIÓN......................................................................................... 18 INTERFAZ CONSISTENTE .................................................................................................................... 18 EVENTOS Y MENSAJES ....................................................................................................................... 18 LIBRERÍAS DE ENLACE DINÁMICO (DLL) .......................................................................................... 19 Centralizar el código en un único lugar........................................................................................ 19 Ahorro de recursos del sistema ..................................................................................................... 19 Independencia del lenguaje ........................................................................................................... 19 APLICACIONES SDI Y MDI ................................................................................................................ 20 OLE ................................................................................................................................................... 20 Vinculación.................................................................................................................................... 20 Incrustación ................................................................................................................................... 21 ACTIVEX............................................................................................................................................ 21 CONTROLES ACTIVEX Y MODELO COM / DCOM ............................................................................ 21 AUTOMATIZACIÓN ACTIVEX............................................................................................................. 22 PROGRAMACIÓN ORIENTADA A OBJETO EN WINDOWS...................................................................... 22 WINDOWS COMO SISTEMA OOP ........................................................................................................ 22 VISUAL BASIC................................................................................................................................... 23 DESDE SUS COMIENZOS...................................................................................................................... 23 LA SITUACIÓN ACTUAL ...................................................................................................................... 23 TIPOS DE PROYECTOS ......................................................................................................................... 24 APERTURA DE UN PROYECTO ............................................................................................................. 25
  4. 4. Programación con Visual Basic 6 © Grupo EIDOS COMPONENTES BÁSICOS DE UN PROGRAMA VISUAL BASIC .............................................................. 26 Proyecto......................................................................................................................................... 26 Formularios ................................................................................................................................... 26 Controles ....................................................................................................................................... 26 Propiedades ................................................................................................................................... 27 Eventos y métodos.......................................................................................................................... 28 Funciones y procedimientos .......................................................................................................... 28 LA PRIMERA APLICACIÓN................................................................................................................... 28 DISEÑAR EL FORMULARIO ................................................................................................................. 29 GRABAR EL FORMULARIO .................................................................................................................. 32 GRABAR EL PROYECTO ...................................................................................................................... 33 EL PROCEDIMIENTO INICIAL SUB MAIN() .......................................................................................... 34 ESTABLECER EL OBJETO INICIAL DE LA APLICACIÓN......................................................................... 35 EJECUTAR EL PROYECTO.................................................................................................................... 36 CONTROLES ESTÁNDAR ..................................................................................................................... 37 Insertar un control en el formulario .............................................................................................. 37 TextBox .......................................................................................................................................... 38 Label .............................................................................................................................................. 39 CheckBox ....................................................................................................................................... 40 Frame............................................................................................................................................. 41 OptionButton.................................................................................................................................. 42 ListBox ........................................................................................................................................... 43 ComboBox...................................................................................................................................... 44 CommandButton ............................................................................................................................ 45 Manipulación de los controles mediante código ........................................................................... 45 CREACIÓN DEL EJECUTABLE DEL PROGRAMA ................................................................................... 47 DISTRIBUCIÓN DE LA APLICACIÓN ..................................................................................................... 48 AMPLIAR LA PRIMERA APLICACIÓN ................................................................................................... 53 INCLUIR UN FORMULARIO MDI ......................................................................................................... 54 CREAR UN MENÚ PARA EL FORMULARIO MDI................................................................................... 57 OPERACIONES ESTÁNDAR MEDIANTE EL CONTROL COMMONDIALOG .............................................. 60 Color.............................................................................................................................................. 61 Impresión ....................................................................................................................................... 62 Tipo de letra................................................................................................................................... 64 Apertura de ficheros ...................................................................................................................... 66 Grabación de ficheros ................................................................................................................... 69 Ayuda ............................................................................................................................................. 69 AGREGAR FUNCIONALIDAD AL FORMULARIO PRINCIPAL .................................................................. 71 ImageList ....................................................................................................................................... 71 Toolbar .......................................................................................................................................... 73 StatusBar ....................................................................................................................................... 77 CREAR UNA VENTANA SPLASH O DE PRESENTACIÓN ........................................................................ 80 Timer.............................................................................................................................................. 82 EL LENGUAJE ................................................................................................................................... 85 INTRODUCCIÓN .................................................................................................................................. 85 VISUAL BASIC PARA APLICACIONES (VBA) ...................................................................................... 85 VBA Y VISUAL BASIC 6 .................................................................................................................... 86 EMPLAZAMIENTO DEL CÓDIGO DE LA APLICACIÓN ........................................................................... 86 COMENTARIOS ................................................................................................................................... 86 MSGBOX() ......................................................................................................................................... 87 INPUTBOX() ....................................................................................................................................... 89 VARIABLES ........................................................................................................................................ 90 Declaración ................................................................................................................................... 90 6
  5. 5. © Grupo EIDOS 1. Introducción Tipo............................................................................................................................................ 91 Ámbito............................................................................................................................................ 93 Denominación................................................................................................................................ 95 CONSTANTES ..................................................................................................................................... 96 EL TIPO ENUMERADO ......................................................................................................................... 98 CONVERSIÓN DE TIPOS..................................................................................................................... 100 CONTINUACIÓN DE LÍNEA DE CÓDIGO ............................................................................................. 102 INSTRUCCIONES EN UNA LÍNEA........................................................................................................ 103 EXPRESIONES ................................................................................................................................... 103 OPERADORES ................................................................................................................................... 103 Aritméticos................................................................................................................................... 104 Comparación ............................................................................................................................... 106 Concatenación ............................................................................................................................. 110 Lógicos......................................................................................................................................... 111 PRIORIDAD DE OPERADORES ............................................................................................................ 117 ARRAYS ........................................................................................................................................... 118 Declaración y asignación de valores........................................................................................... 118 Devolución de arrays desde funciones ........................................................................................ 120 Establecer los límites de los índices ............................................................................................ 120 Arrays dinámicos ......................................................................................................................... 122 Manipulación de arrays multidimensionales............................................................................... 124 Seleccionar información en un array .......................................................................................... 125 TIPOS DEFINIDOS POR EL USUARIO .................................................................................................. 126 PROCEDIMIENTOS ............................................................................................................................ 128 Sub ............................................................................................................................................... 128 Function....................................................................................................................................... 130 Sub Main(). Un procedimiento especial ...................................................................................... 131 ESTRUCTURAS DE CONTROL ............................................................................................................ 132 If...Then...Else...End If ................................................................................................................. 132 Select Case...End Select............................................................................................................... 134 For...Next ..................................................................................................................................... 136 Do...Loop ..................................................................................................................................... 137 While...Wend................................................................................................................................ 139 For Each...Next............................................................................................................................ 140 With...End With............................................................................................................................ 141 Goto ............................................................................................................................................. 142 DIRECTIVAS ..................................................................................................................................... 143 #If...Then...#Else...#End If ........................................................................................................... 143 MANEJO DE ERRORES ....................................................................................................................... 144 Err................................................................................................................................................ 145 On Error ...................................................................................................................................... 146 FUNCIONES MÁS HABITUALES ......................................................................................................... 148 Numéricas.................................................................................................................................... 148 Cadenas de caracteres................................................................................................................. 150 Fecha y hora................................................................................................................................ 163 EL ENTORNO DE DESARROLLO (IDE)..................................................................................... 169 EL NUEVO ASPECTO DE NUESTRA MESA DE TRABAJO ...................................................................... 169 MENÚ ARCHIVO ............................................................................................................................... 170 MENÚ EDICIÓN ................................................................................................................................ 172 MENÚ VER ....................................................................................................................................... 175 MENÚ PROYECTO ............................................................................................................................ 183 MENÚ FORMATO .............................................................................................................................. 185 MENÚ DEPURACIÓN......................................................................................................................... 188 7
  6. 6. Programación con Visual Basic 6 © Grupo EIDOS MENÚ EJECUTAR ............................................................................................................................. 189 MENÚ CONSULTA ............................................................................................................................ 190 MENÚ DIAGRAMA ............................................................................................................................ 193 MENÚ HERRAMIENTAS .................................................................................................................... 194 MENÚ COMPLEMENTOS ................................................................................................................... 195 MENÚ VENTANA .............................................................................................................................. 196 MENÚ AYUDA .................................................................................................................................. 197 VENTANA DE PROYECTO ................................................................................................................. 197 EDITOR DE FORMULARIOS ............................................................................................................... 198 Insertar controles......................................................................................................................... 199 Modificar controles ..................................................................................................................... 200 Mover controles ........................................................................................................................... 200 Seleccionar controles................................................................................................................... 200 Cortar, Copiar y Pegar controles................................................................................................ 201 Arrays de controles...................................................................................................................... 201 Manipulación global de controles ............................................................................................... 201 Formularios MDI......................................................................................................................... 203 EDITOR DE CÓDIGO .......................................................................................................................... 203 Lista de objetos............................................................................................................................ 204 Lista de procedimientos............................................................................................................... 204 Barra de división ......................................................................................................................... 206 Visualizar el código ..................................................................................................................... 206 Marcadores y barra de margen................................................................................................... 206 Configuración del Editor de Código ........................................................................................... 207 Configuración de formato del Editor de Código ......................................................................... 210 VENTANAS COMPLEMENTARIAS ...................................................................................................... 210 Ventana de Propiedades .............................................................................................................. 211 Cuadro de herramientas .............................................................................................................. 211 Examinador de objetos ................................................................................................................ 215 Ventana de Posición del formulario ............................................................................................ 217 Paleta de colores ......................................................................................................................... 217 Anclaje de ventanas ..................................................................................................................... 218 Personalizar las barras de herramientas .................................................................................... 219 DISEÑO DE MENÚS ........................................................................................................................ 223 DESCRIPCIÓN DE UN MENÚ .............................................................................................................. 223 CARACTERÍSTICAS DE UN MENÚ ...................................................................................................... 223 PROPIEDADES DE UN CONTROL MENÚ ............................................................................................. 224 EL EDITOR DE MENÚS ...................................................................................................................... 224 AÑADIR CÓDIGO A UNA OPCIÓN DE MENÚ ....................................................................................... 226 CREACIÓN DE UN MENÚ ................................................................................................................... 226 MENÚS EN FORMULARIOS MDI ....................................................................................................... 231 EL REGISTRO WINDOWS ............................................................................................................ 235 DE LOS FICHEROS INI AL REGISTRO ................................................................................................ 235 EL REGISTRO POR DENTRO ............................................................................................................... 235 MANIPULACIÓN DE LAS ENTRADAS DEL REGISTRO ......................................................................... 236 TRATAMIENTO DE DATOS CON ACTIVEX DATA OBJECTS (ADO) ................................ 241 INTRODUCCIÓN A LA PROGRAMACIÓN CON BASES DE DATOS ......................................................... 241 DISEÑO DE LA BASE DE DATOS ........................................................................................................ 242 Establecer el modelo de la aplicación......................................................................................... 242 Analizar que información necesita la aplicación ........................................................................ 242 Establecer la información en tablas ............................................................................................ 242 8
  7. 7. © Grupo EIDOS 1. Introducción Normalización de la base de datos .............................................................................................. 243 Relacionar las tablas ................................................................................................................... 244 Establecer la integridad referencial ............................................................................................ 245 Definir índices para las tablas..................................................................................................... 246 Definir validaciones en la inserción de datos ............................................................................. 246 ACCESO A INFORMACIÓN BAJO CUALQUIER FORMATO ................................................................... 246 ACCESO UNIVERSAL A DATOS (UDA) ............................................................................................ 247 OLE DB........................................................................................................................................... 247 ACTIVEX DATA OBJECTS (ADO) .................................................................................................... 249 Connection................................................................................................................................... 250 Propiedades.............................................................................................................................. 250 Métodos ................................................................................................................................... 253 Command..................................................................................................................................... 258 Propiedades.............................................................................................................................. 258 Métodos ................................................................................................................................... 260 Parameter .................................................................................................................................... 260 Propiedades.............................................................................................................................. 260 Métodos ................................................................................................................................... 264 Recordset ..................................................................................................................................... 264 Propiedades.............................................................................................................................. 264 Métodos ................................................................................................................................... 269 Field............................................................................................................................................. 276 Propiedades.............................................................................................................................. 276 Métodos ................................................................................................................................... 277 Property ....................................................................................................................................... 277 Propiedades.............................................................................................................................. 278 Error ............................................................................................................................................ 278 Propiedades.............................................................................................................................. 278 EL ADO DATA CONTROL ................................................................................................................ 279 VALIDACIONES A NIVEL DE MOTOR ................................................................................................. 288 EL CONTROL DATAGRID .................................................................................................................. 289 REFLEXIONES SOBRE LOS CONTROLES ENLAZADOS A DATOS ......................................................... 292 CONTROLES ENLAZADOS Y CÓDIGO, UN PUNTO INTERMEDIO ......................................................... 293 La aplicación de ejemplo............................................................................................................. 293 El formulario de datos ................................................................................................................. 293 El control DataCombo................................................................................................................. 294 El código a incluir ....................................................................................................................... 295 La aplicación en funcionamiento................................................................................................. 296 CREACIÓN DE OBJETOS ADO........................................................................................................... 296 Utilizar los objetos principales del modelo ................................................................................. 296 Modificar la información a través del objeto Connection........................................................... 297 Consultas de registros usando Connection ................................................................................. 298 Reserva de conexiones................................................................................................................. 299 Procedimientos almacenados desde objetos Command .............................................................. 299 Modificar datos desde objetos Command.................................................................................... 301 Manejo de un Recordset sin usar objetos superiores .................................................................. 301 GUARDAR LA RUTA DE DATOS EN EL REGISTRO DE WINDOWS ....................................................... 302 ÍNDICES ............................................................................................................................................ 305 ÓRDENES.......................................................................................................................................... 306 FILTROS............................................................................................................................................ 308 BÚSQUEDA DE REGISTROS ............................................................................................................... 310 NAVEGACIÓN POR LOS REGISTROS .................................................................................................. 312 VALIDACIÓN DE CONTROLES ........................................................................................................... 314 CREAR CONTROLES EN TIEMPO DE EJECUCIÓN ................................................................................ 316 9
  8. 8. Programación con Visual Basic 6 © Grupo EIDOS EDICIÓN DE REGISTROS.................................................................................................................... 320 Agregar con Recordset ................................................................................................................ 322 Agregar con Connection.............................................................................................................. 323 Modificar con Recordset.............................................................................................................. 324 Modificar con Connection ........................................................................................................... 324 Borrar con Recordset .................................................................................................................. 325 Borrar con Connection ................................................................................................................ 326 TRANSACCIONES .............................................................................................................................. 326 CONECTAR MEDIANTE UN ORIGEN DE DATOS ODBC...................................................................... 330 Nombre de fuente de datos o DSN de usuario (Data Source Name) ........................................... 330 Fichero .DSN con la información de conexión............................................................................ 334 Conectar sin DSN, sólo con código ............................................................................................. 337 EJECUTAR UN PROCEDIMIENTO ALMACENADO ............................................................................... 338 ESQUEMAS ....................................................................................................................................... 339 ENLAZAR CONTROLES A DATOS EN TIEMPO DE EJECUCIÓN ............................................................. 340 ENLAZAR CONTROLES DE VARIOS FORMULARIOS A UN MISMO ORIGEN DE DATOS ......................... 345 EL ENTORNO DE DATOS (DATA ENVIRONMENT) ............................................................................ 348 Agregar un Entorno de Datos...................................................................................................... 348 Crear una conexión ..................................................................................................................... 349 Crear un comando ....................................................................................................................... 351 Agregar código a los objetos de datos......................................................................................... 352 Otros tipos de comandos ............................................................................................................. 353 Simplificar el desarrollo de un mantenimiento de datos ............................................................. 355 Manipular los elementos de un Entorno de Datos en tiempo de ejecución................................. 360 Relacionar comandos del Entorno de Datos ............................................................................... 361 Agregados.................................................................................................................................... 363 Agrupar filas sobre la base de un campo .................................................................................... 364 Contar las filas de un campo agrupado....................................................................................... 366 VISTA DATOS (DATA VIEW) ............................................................................................................ 367 Visualizar las conexiones del Entorno de Datos en Vista Datos................................................. 367 Crear un Entorno de Datos desde Vista Datos............................................................................ 368 Crear un vínculo desde Vista Datos ............................................................................................ 368 Acceder a los elementos contenidos en Vista Datos.................................................................... 370 Arrastrar y soltar desde Vista Datos ........................................................................................... 371 ASISTENTE PARA CREAR FORMULARIOS DE DATOS ......................................................................... 372 IMPRESIÓN ...................................................................................................................................... 377 TÉCNICAS DE IMPRESIÓN EN VISUAL BASIC .................................................................................... 377 IMPRESIÓN MEDIANTE OBJETOS ....................................................................................................... 377 LA COLECCIÓN PRINTERS ................................................................................................................ 378 EL OBJETO PRINTER ......................................................................................................................... 378 Cambiar el tipo de fuente ............................................................................................................ 380 Seleccionar la impresora y el tipo de letra mediante el control CommonDialog ....................... 380 OTRAS PROPIEDADES Y MÉTODOS DEL OBJETO PRINTER ................................................................ 382 Propiedades ................................................................................................................................. 382 Métodos ....................................................................................................................................... 385 DATA REPORT (DISEÑADOR DE INFORMES)..................................................................................... 385 ELEMENTOS DEL DISEÑADOR DE INFORMES .................................................................................... 386 EL OBJETO DATAREPORT ................................................................................................................ 386 Propiedades ................................................................................................................................. 386 Métodos ....................................................................................................................................... 387 Eventos......................................................................................................................................... 388 EL OBJETO SECTION ......................................................................................................................... 389 Propiedades ................................................................................................................................. 390 10
  9. 9. © Grupo EIDOS 1. Introducción CONTROLES DEL DISEÑADOR DE INFORMES .................................................................................... 390 CREAR UN INFORME ......................................................................................................................... 392 Crear la fuente de datos .............................................................................................................. 393 Agregar un diseñador de informes al proyecto ........................................................................... 393 Conectar el informe con una fuente de datos .............................................................................. 394 Insertar campos en el informe ..................................................................................................... 394 Previsualizar el informe .............................................................................................................. 396 CANCELAR EL PROCESO DE IMPRESIÓN ........................................................................................... 397 LA VENTANA DE PREVISUALIZACIÓN .............................................................................................. 398 MEJORAR EL ASPECTO DEL INFORME............................................................................................... 398 Título............................................................................................................................................ 398 Formas gráficas........................................................................................................................... 400 Imágenes...................................................................................................................................... 400 Número de página........................................................................................................................ 401 Fecha y hora................................................................................................................................ 401 PRESENTACIÓN DE DATOS AGRUPADOS JERÁRQUICAMENTE .......................................................... 402 EL CONTROL RPTFUNCTION ............................................................................................................ 405 INFORMES CON SELECCIÓN DE REGISTROS ...................................................................................... 407 EXPORTAR UN INFORME................................................................................................................... 409 Propiedades ................................................................................................................................. 410 CRYSTAL REPORTS .......................................................................................................................... 411 COMENZANDO CON CRYSTAL REPORTS .......................................................................................... 411 Creación de un nuevo informe..................................................................................................... 412 Selección de la base de datos ...................................................................................................... 413 Secciones del informe .................................................................................................................. 413 Insertar campos en el informe ..................................................................................................... 414 Previsualizar el informe .............................................................................................................. 416 COMPLETANDO EL INFORME ............................................................................................................ 417 Título............................................................................................................................................ 417 Dibujo .......................................................................................................................................... 418 Imagen ......................................................................................................................................... 419 Ajustar sección............................................................................................................................. 420 Número de página y fecha del informe........................................................................................ 420 CONFIGURACIÓN DEL INFORME ....................................................................................................... 422 MANIPULACIÓN DE LA BASE DE DATOS CONECTADA AL INFORME ................................................. 423 Establecer ubicación ................................................................................................................... 423 Comprobar la base de datos........................................................................................................ 423 SELECCIÓN DE REGISTROS ............................................................................................................... 424 ORDEN DE LOS REGISTROS ............................................................................................................... 426 SELECCIÓN DE CAMPOS ................................................................................................................... 427 FÓRMULAS ....................................................................................................................................... 427 CREACIÓN DE UN RESUMEN ............................................................................................................. 430 INSERTAR UN SUBTOTAL ................................................................................................................. 431 ASISTENTES PARA LA CREACIÓN DE INFORMES ............................................................................... 432 EL CONTROL CRYSTAL REPORT....................................................................................................... 435 OBTENCIÓN DE LOS DATOS DESDE UNA TABLA INTERMEDIA .......................................................... 440 EL DEPURADOR ............................................................................................................................. 445 ¿QUÉ ES UN DEPURADOR?................................................................................................................ 445 ACCIONES BÁSICAS .......................................................................................................................... 446 MODO DE INTERRUPCIÓN ................................................................................................................. 446 PUNTOS DE INTERRUPCIÓN .............................................................................................................. 446 EJECUCIÓN PASO A PASO.................................................................................................................. 448 INSPECCIONES .................................................................................................................................. 449 11
  10. 10. Programación con Visual Basic 6 © Grupo EIDOS La ventana de Inspección ............................................................................................................ 450 Inspección rápida ........................................................................................................................ 451 LA VENTANA INMEDIATO ................................................................................................................ 451 LA VENTANA LOCALES .................................................................................................................... 452 PILA DE LLAMADAS ......................................................................................................................... 454 PROGRAMACIÓN ORIENTADA A OBJETO (OOP) ................................................................ 457 ¿QUÉ VENTAJAS APORTA LA PROGRAMACIÓN ORIENTADA A OBJETOS? ......................................... 457 OBJETOS ........................................................................................................................................... 458 CLASES............................................................................................................................................. 459 CLASES ABSTRACTAS....................................................................................................................... 460 RELACIONES ENTRE OBJETOS .......................................................................................................... 460 Herencia ...................................................................................................................................... 460 Pertenencia.................................................................................................................................. 461 Utilización.................................................................................................................................... 461 ELEMENTOS BÁSICOS DE UN SISTEMA OOP..................................................................................... 461 Encapsulación.............................................................................................................................. 461 Polimorfismo................................................................................................................................ 461 Herencia ...................................................................................................................................... 462 REUTILIZACIÓN ................................................................................................................................ 462 CREACIÓN DE CLASES ...................................................................................................................... 462 Crear un módulo de clase............................................................................................................ 462 Definir las propiedades de la clase ............................................................................................. 463 Acceder a las propiedades de la clase......................................................................................... 463 ¿Qué son los procedimientos Property?...................................................................................... 464 Tipos de procedimientos Property............................................................................................... 464 Ventajas de los procedimientos Property .................................................................................... 467 Establecer una propiedad como predeterminada........................................................................ 470 Crear los métodos de la clase...................................................................................................... 471 ¿Cuándo crear un procedimiento Property o un método? .......................................................... 472 CREAR OBJETOS DE UNA CLASE ....................................................................................................... 472 Tipificación de variables ............................................................................................................. 473 Instanciar un objeto..................................................................................................................... 474 Uso de propiedades y métodos .................................................................................................... 475 Eliminar el objeto ........................................................................................................................ 476 LA PALABRA CLAVE ME .................................................................................................................. 476 EMPLEAR VALORES CONSTANTES EN UNA CLASE ........................................................................... 479 EVENTOS PREDEFINIDOS PARA UNA CLASE ..................................................................................... 481 COLECCIONES .................................................................................................................................. 481 Insertar un módulo de clase ........................................................................................................ 482 Eventos de creación/destrucción del objeto Collection............................................................... 482 Procedimientos Property para la colección ................................................................................ 482 Métodos para la colección........................................................................................................... 483 Incorporar nuevas funcionalidades a la colección...................................................................... 485 Recorrer la colección mediante For Each...Next ........................................................................ 485 EL OBJETO DICTIONARY .................................................................................................................. 488 Agregar elementos al diccionario................................................................................................ 490 Obtener un elementos del diccionario ......................................................................................... 490 Recorrer la información del diccionario ..................................................................................... 491 Comprobar existencia de elementos ............................................................................................ 491 Borrar un elemento del diccionario............................................................................................. 492 Borrar todos los elementos del diccionario................................................................................. 492 EVENTOS PERSONALIZADOS ............................................................................................................ 492 INTERFACES ..................................................................................................................................... 495 12
  11. 11. © Grupo EIDOS 1. Introducción Creación de un interfaz ............................................................................................................... 496 Implementar el interfaz................................................................................................................ 497 Utilizar un interfaz implementado en una clase .......................................................................... 499 Polimorfismo mediante Interfaces............................................................................................... 501 Herencia mediante Interfaces...................................................................................................... 503 Herencia sin utilizar interfaces en la aplicación......................................................................... 506 PROCEDIMIENTOS FRIEND ............................................................................................................... 508 MANIPULACIÓN INDIRECTA DE OBJETOS; LA FUNCIÓN CALLBYNAME()........................................ 509 FORMULARIOS CON "CLASE"........................................................................................................... 510 VARIABLES GLOBALES DE FORMULARIO ......................................................................................... 515 UTILIDADES Y HERRAMIENTAS PARA EL MANEJO DE CLASES ......................................................... 516 Generador de clases (Class Wizard) ........................................................................................... 516 Examinador de objetos (Object Browser) ................................................................................... 519 OBJETOS DEL SISTEMA ..................................................................................................................... 520 ACTIVEX........................................................................................................................................... 523 ¿QUÉ ES ACTIVEX?.......................................................................................................................... 523 COMPONENTES ACTIVEX ................................................................................................................ 524 ACTIVEX DLL ................................................................................................................................. 524 ACTIVEX EXE ................................................................................................................................. 525 CONTROL ACTIVEX ......................................................................................................................... 526 DOCUMENTO ACTIVEX.................................................................................................................... 526 DCOM ............................................................................................................................................. 526 AUTOMATIZACIÓN REMOTA ............................................................................................................ 526 CREACIÓN DE COMPONENTES ACTIVEX DLL Y EXE ..................................................................... 526 Establecer el tipo de componente ................................................................................................ 527 Propiedades del componente ....................................................................................................... 527 Clases del componente ................................................................................................................ 529 Creación de formularios en el componente................................................................................. 529 Procedimiento Main de entrada .................................................................................................. 530 COMPATIBILIDAD DE VERSIONES ..................................................................................................... 530 DESARROLLO DE UN COMPONENTE ACTIVEX EXE ........................................................................ 531 Clase Cliente................................................................................................................................ 532 Formulario frmClientes ............................................................................................................... 536 Procedimiento Main .................................................................................................................... 537 USO DE UN COMPONENTE ACTIVEX EXE DESDE UNA APLICACIÓN CLIENTE ................................. 538 CREATEOBJECT()............................................................................................................................. 541 REDUCCIÓN DE LA COMUNICACIÓN ENTRE PROCESOS .................................................................... 541 MEJORAR EL GUIADO DE DATOS ENTRE PROCESOS .......................................................................... 542 LA PROPIEDAD INSTANCING ............................................................................................................ 544 Private ......................................................................................................................................... 544 PublicNotCreatable ..................................................................................................................... 544 SINGLEUSE ...................................................................................................................................... 545 GlobalSingleUse .......................................................................................................................... 545 MultiUse ...................................................................................................................................... 545 GlobalMultiUse ........................................................................................................................... 545 PROGRAMACIÓN MULTIHEBRA ........................................................................................................ 545 DESARROLLO DE UN COMPONENTE ACTIVEX DLL ........................................................................ 546 Diseño de las clases..................................................................................................................... 547 TRABAJAR CON UN GRUPO DE PROYECTOS ...................................................................................... 552 DESARROLLO DE LA APLICACIÓN CLIENTE PARA UN COMPONENTE ACTIVEX DLL....................... 553 COMPILAR UN COMPONENTE DE CÓDIGO ACTIVEX ........................................................................ 559 DISTRIBUIR UN COMPONENTE DE CÓDIGO ACTIVEX....................................................................... 560 AUTOMATIZACIÓN ACTIVEX........................................................................................................... 560 13
  12. 12. Programación con Visual Basic 6 © Grupo EIDOS CONEXIÓN CON OFFICE. USO DE WORD DESDE VISUAL BASIC ...................................................... 561 OFFICE LLAMA AL CÓDIGO DE VISUAL BASIC ................................................................................. 564 OBJETOS INSERTABLES .................................................................................................................... 568 EL CONTROL CONTENEDOR OLE..................................................................................................... 572 frmIncrusta .................................................................................................................................. 573 frmVincula ................................................................................................................................... 575 FrmEjecInc - frmEjecVinc........................................................................................................... 576 CONTROLES ACTIVEX ..................................................................................................................... 577 Diseño del control........................................................................................................................ 578 Crear el interfaz del control ........................................................................................................ 578 El código del control ................................................................................................................... 579 Redimensionar el control............................................................................................................. 581 Eventos notificados por el control ............................................................................................... 582 Creación de propiedades............................................................................................................. 584 Eventos del control ...................................................................................................................... 585 Páginas de propiedades............................................................................................................... 588 Configurar una página de propiedades estándar........................................................................ 593 Uso del control en un formulario ................................................................................................ 594 Uso del control en una página web ............................................................................................. 595 ASISTENTE PARA LA CREACIÓN DE CONTROLES .............................................................................. 596 Asistente para páginas de propiedades ....................................................................................... 601 Compilación y distribución.......................................................................................................... 604 DOCUMENTOS ACTIVEX.................................................................................................................. 604 Documento ActiveX ..................................................................................................................... 604 Servidor de Documentos ActiveX ................................................................................................ 605 Creación de un Servidor de Documentos ActiveX....................................................................... 605 Visualización de un documento ActiveX...................................................................................... 609 Compilar el proyecto ................................................................................................................... 610 Distribución de la aplicación servidora y documentos ............................................................... 611 TRATAMIENTO AVANZADO DE DATOS CON ADO.............................................................. 617 CLASES ORIENTADAS A DATOS ........................................................................................................ 617 Proveedor de datos ...................................................................................................................... 617 Consumidor de datos ................................................................................................................... 618 BindingCollection ........................................................................................................................ 618 CREAR UNA CLASE PROVEEDORA DE DATOS ................................................................................... 618 CREAR UNA CLASE CONSUMIDORA DE DATOS ................................................................................. 620 PROVEEDOR DE DATOS CON LA INFORMACIÓN EN UN FORMATO DISTINTO .................................... 622 TRABAJAR CON VARIOS MIEMBROS DE DATOS ................................................................................ 629 CREACIÓN DE UN CONTROL PERSONALIZADO ORIENTADO A DATOS ............................................... 633 Interfaz del control ...................................................................................................................... 634 Variables y procedimientos para propiedades ............................................................................ 634 Código del UserControl .............................................................................................................. 636 Botones de navegación ................................................................................................................ 637 Botones de edición....................................................................................................................... 638 El proyecto para pruebas ............................................................................................................ 639 El formulario de prueba .............................................................................................................. 639 EL CONTROL DATAREPEATER ......................................................................................................... 641 MODELADO DE DATOS (DATA SHAPING)......................................................................................... 646 Modelado simple.......................................................................................................................... 647 El control Hierarchical FlexGrid................................................................................................ 648 Obtener varios detalles desde una instrucción principal ............................................................ 650 Recuperar datos desde varios niveles de profundidad ................................................................ 651 Realizar cálculos mediante modelado de datos........................................................................... 652 14
  13. 13. © Grupo EIDOS 1. Introducción MANIPULACIÓN DE FICHEROS................................................................................................. 655 ¿POR QUÉ USAR FICHEROS? ............................................................................................................. 655 APERTURA DE UN FICHERO .............................................................................................................. 656 CIERRE DE UN FICHERO.................................................................................................................... 657 MODOS DE ACCESO A FICHEROS ...................................................................................................... 657 ACCESO SECUENCIAL ...................................................................................................................... 658 Apertura....................................................................................................................................... 658 Lectura......................................................................................................................................... 658 Escritura ...................................................................................................................................... 661 ACCESO ALEATORIO ........................................................................................................................ 664 Apertura....................................................................................................................................... 664 Escritura ...................................................................................................................................... 664 Lectura......................................................................................................................................... 665 ACCESO BINARIO ............................................................................................................................. 666 Apertura....................................................................................................................................... 667 Escritura ...................................................................................................................................... 667 Lectura......................................................................................................................................... 667 OTRAS INSTRUCCIONES PARA MANEJO DE FICHEROS ...................................................................... 668 OBJETOS PARA EL MANEJO DE FICHEROS......................................................................................... 672 Drive ............................................................................................................................................ 672 Propiedades.............................................................................................................................. 673 Folder .......................................................................................................................................... 674 Propiedades.............................................................................................................................. 674 Métodos ................................................................................................................................... 675 File............................................................................................................................................... 678 FileSystemObject ......................................................................................................................... 679 Propiedades.............................................................................................................................. 679 Métodos ................................................................................................................................... 679 TextStream ................................................................................................................................... 685 Propiedades.............................................................................................................................. 685 Métodos ................................................................................................................................... 686 ACCESO AL API DE WINDOWS DESDE VISUAL BASIC....................................................... 689 QUÉ HACER CUANDO CON VISUAL BASIC NO SE PUEDE .................................................................. 689 ¿QUÉ ES UN API? ............................................................................................................................. 689 DLL, EL SOPORTE FÍSICO DEL API................................................................................................... 690 LA INSTRUCCIÓN DECLARE ............................................................................................................. 691 EL VISOR DE API ............................................................................................................................. 693 DECLARACIÓN DE FUNCIONES QUE MANEJAN CADENAS ................................................................. 696 DECLARACIONES DE TIPO ESTRICTO. EVITAR EL USO DE "AS ANY" ............................................... 696 CREAR DECLARACIONES SEGURAS MEDIANTE UNA FUNCIÓN "ENVOLVENTE" ............................... 700 MANIPULACIÓN DE MENSAJES ......................................................................................................... 701 Cómo son los mensajes................................................................................................................ 701 Enviar mensajes........................................................................................................................... 702 SUBCLASIFICACIÓN. PROCESAR LOS MENSAJES QUE ENVÍA EL SISTEMA ........................................ 704 Subclasificación para una ventana.............................................................................................. 704 Subclasificación para un control................................................................................................. 708 ALGUNOS EJEMPLOS ADICIONALES ................................................................................................. 712 GLOSARIO DE TÉRMINOS .......................................................................................................... 719 NORMATIVA DE CODIFICACIÓN ....................................................................................................... 719 TRATAMIENTO DE DATOS CON VISUAL BASIC 5 ............................................................... 725 INTRODUCCIÓN A LA PROGRAMACIÓN CON BASES DE DATOS ......................................................... 725 15
  14. 14. Programación con Visual Basic 6 © Grupo EIDOS DISEÑO DE LA BASE DE DATOS ........................................................................................................ 726 Establecer el modelo de la aplicación......................................................................................... 726 Analizar que información necesita la aplicación ........................................................................ 726 Establecer la información en tablas ............................................................................................ 726 Normalización de la base de datos .............................................................................................. 727 Relacionar las tablas ................................................................................................................... 728 Establecer la integridad referencial ............................................................................................ 730 Definir índices para las tablas..................................................................................................... 730 Definir validaciones en la inserción de datos ............................................................................. 730 EL MOTOR JET .................................................................................................................................. 731 EL CONTROL DATA .......................................................................................................................... 732 VALIDACIONES A NIVEL DE MOTOR ................................................................................................. 736 EL CONTROL DBGRID ...................................................................................................................... 737 REFLEXIONES SOBRE LOS CONTROLES ENLAZADOS A DATOS ......................................................... 740 CONTROLES ENLAZADOS Y CÓDIGO, UN PUNTO INTERMEDIO ......................................................... 741 La aplicación de ejemplo............................................................................................................. 741 El formulario de datos ................................................................................................................. 741 El control DBCombo ................................................................................................................... 742 El código a incluir ....................................................................................................................... 742 La aplicación en funcionamiento................................................................................................. 744 OBJETOS DE ACCESO A DATOS (DAO)............................................................................................ 744 GUARDAR LA RUTA DE DATOS EN EL REGISTRO DE WINDOWS ....................................................... 744 APERTURA DE UNA BASE DE DATOS ................................................................................................ 746 EL OBJETO RECORDSET ................................................................................................................... 749 CONECTANDO MEDIANTE ODBCDIRECT ........................................................................................ 752 USO DE CONTROLADORES ISAM..................................................................................................... 753 OTRAS OPERACIONES CON DAO...................................................................................................... 754 ÍNDICES ............................................................................................................................................ 755 ÓRDENES.......................................................................................................................................... 757 FILTROS............................................................................................................................................ 759 NAVEGACIÓN POR LOS REGISTROS .................................................................................................. 760 BÚSQUEDA DE REGISTROS ............................................................................................................... 763 OBJETOS PARA LA DEFINICIÓN DE DATOS ........................................................................................ 766 Bases de datos.............................................................................................................................. 766 Tablas .......................................................................................................................................... 767 Índices.......................................................................................................................................... 770 Consultas almacenadas ............................................................................................................... 771 Consultas con parámetros ........................................................................................................... 774 RELACIONES .................................................................................................................................... 776 TRANSACCIONES .............................................................................................................................. 779 OPERACIONES CON SQL .................................................................................................................. 782 EDICIÓN DE REGISTROS.................................................................................................................... 787 APLICANDO LA TEORÍA .................................................................................................................... 792 Diseño de la base de datos .......................................................................................................... 792 Interfaz de usuario....................................................................................................................... 793 Creación de la tabla de apuntes del ejercicio fiscal en tiempo de ejecución .............................. 794 El formulario de edición de apuntes de IVA................................................................................ 798 Formato para controles con texto ............................................................................................... 801 Agilizar la edición de apuntes ..................................................................................................... 805 Aprovechar valores repetitivos.................................................................................................... 805 Grabar un registro....................................................................................................................... 806 Estilo de la ventana principal...................................................................................................... 808 VISDATA, ADMINISTRADOR VISUAL DE DATOS .............................................................................. 809 16
  15. 15. Introducción Introducción a la programación en Windows con Visual Basic La continua evolución en las necesidades de los programadores, hace que las herramientas de desarrollo sean actualmente uno de los elementos con más rápida evolución en el mundo de la informática. Programación Orientada a Objetos, Cliente / Servidor, multimedia y sobre todo Internet, como la gran revolución en el mundo de las comunicaciones por ordenador, son requisitos indispensables para cualquier lenguaje que aspire a ocupar un puesto destacado en el mercado de las herramientas de programación. Uno de los sistemas operativos más populares actualmente, para el que se realizan un gran número de aplicaciones es Windows, y una de las principales herramientas para programar en este sistema es Visual Basic (o VB como también lo denominaremos). Este curso se basa precisamente en estos elementos, la programación de aplicaciones Windows utilizando Visual Basic 6 como entorno de desarrollo. Visual Basic es una herramienta multipropósito, es decir, podemos crear programas utilizando este lenguaje para resolver diferentes tipos de problemas; sin embargo, debido al gran número de programadores dedicados a desarrollar programas de gestión, este curso va a estar orientado fundamentalmente al manejo de datos. 17
  16. 16. Programación con Visual Basic 6 © Grupo EIDOS En los siguientes apartados, veremos brevemente, las nociones básicas de la programación bajo el entorno Windows. El sistema controla a la aplicación Aquellos programadores que pasen de trabajar en DOS a Windows necesitarán afrontar una nueva filosofía de trabajo. Cuando creamos un programa para DOS, dicho programa al ejecutarse, acapara todos los recursos del ordenador, controlando teclado, vídeo, estados de espera del programa, etc., todo está en manos del programa hasta que finalice su ejecución. Esto es lógico, ya que al ser un sistema monotarea, la única aplicación en ejecución puede acceder directamente a todos los recursos de la máquina. Existe una excepción en los llamados programas residentes, que una vez cargados son accesibles desde el programa principal mediante una combinación de teclado. Aunque esta técnica es muy útil bajo DOS, no se puede considerar multitarea, ya que no es un sistema preparado para ello. En Windows se da el caso contrario, al ser un sistema multitarea y poder tener más de un programa en ejecución al mismo tiempo, es el sistema operativo el que tiene el control de todos los programas lanzados. Asignando a cada programa un espacio de direcciones propio, de modo que no entren en conflicto mutuamente. Para comunicarse con los programas, utiliza un sistema de mensajes; Windows recibe y envía peticiones a los programas abiertos, administra las prioridades para los programas, la memoria, y en definitiva se encarga del buen funcionamiento de todos los aspectos del sistema. Interfaz consistente Cada programa realizado en DOS puede tener, de hecho la mayoría lo tienen, un aspecto y modo de comunicación con el usuario diferente, lo que habitualmente llamamos interfaz. Esto supone un derroche de tiempo tanto para el usuario como para el programador. Los usuarios cada vez que han de utilizar un nuevo programa de este tipo, deben emplear tiempo en aprender a comunicarse con él. Y los programadores han de gastar parte del tiempo de desarrollo en crear la interfaz de la aplicación. En Windows todos los programas tienen un único interfaz, lo que redunda en beneficios para usuarios y programadores. Los primeros cuando aprenden a utilizar una aplicación para Windows, ya tienen parte del camino recorrido para las siguientes, debido a que el uso de la ventana que contiene la aplicación es igual para todas. Sólo han de concentrarse en el aprendizaje del contenido de la aplicación y no el continente. Similar situación se da respecto a los programadores, no han de preocuparse del interfaz en absoluto, ya que viene proporcionado por Windows, sólo han de desarrollar las rutinas que resuelvan los problemas con que el programa pueda encontrarse. Eventos y mensajes Se dice que Windows es un sistema conducido por eventos, ya que es la forma que tiene de saber lo que está pasando en todo momento. Cualquier cosa que ocurre en Windows es un evento: mover el ratón, abrir un menú, pulsar un control, redimensionar una ventana, etc. Windows actúa como central de información, tomando los eventos producidos en el sistema y enviando mensajes al programa o programas que necesitan ser notificados de lo que ocurre. Puesto que Windows hace llamadas a los programas en forma de mensajes, estos han de disponer de un mecanismo para poder saber lo que el sistema les está diciendo. Este mecanismo es el llamado procedimiento de ventana, que contiene un bucle de mensajes o estructura de tipo Case – End Case, en la que se ejecuta el código programado para ese mensaje. 18
  17. 17. © Grupo EIDOS 1. Introducción Si no estamos interesados en realizar ninguna operación especial para determinados mensajes, no escribiremos código asociado para ellos, con lo que sólo se ejecutarán las acciones por defecto programadas por el propio Windows. Lo anteriormente explicado no quiere decir que siempre debamos escribir un procedimiento de ventana para el programa. En Visual Basic este procedimiento es creado y gestionado internamente por el producto para cada ventana, sin que tengamos que preocuparnos en condiciones normales de su mantenimiento; esta es entre otras, una de las muchas facilidades que nos proporciona la herramienta. Sin embargo, también será posible acceder a estos mensajes, tanto para recogerlos como para enviarlos, y hacer llamadas a funciones para las que VB no da soporte, a través del API de Windows. Librerías de enlace dinámico (DLL) Cuando en DOS escribimos un programa, muchas de las funciones que usamos en el programa están contenidas en una o varias librerías (ficheros .LIB). Al generar el ejecutable, enlazamos con esas librerías, y el código de tales funciones se añade a nuestro ejecutable. Si creamos más de una aplicación que haga llamadas a las mismas funciones, estas se añadirán a cada fichero .EXE, con lo que tendremos varios programas con código repetido para las rutinas comunes. Para solventar este problema, en Windows disponemos de DLL’s (Dynamic Link Library), que forman uno de los componentes básicos en la arquitectura del sistema operativo. Una DLL es una librería que contiene código compilado y pre-enlazado, accesible desde cualquier programa que se encuentre en ejecución. Podemos seguir utilizando librerías normales LIB, pero las ventajas derivadas del uso de DLL’s son mucho mayores. A continuación exponemos algunos de los motivos. Centralizar el código en un único lugar Con esto conseguimos un doble objetivo: evitar el código redundante en las aplicaciones, al no incluir el código de las funciones comunes en cada programa; y más facilidad en el mantenimiento de versiones. Una vez modificada una rutina y generada de nuevo la DLL, los cambios son accesibles para todos los programas que la llamen. Con el método tradicional, además de generar de nuevo la librería, tendríamos que recompilar todos los programas que hacen uso de ella, enlazándolos con la nueva versión de la librería, de forma que pudieran incluir las rutinas modificadas o nuevas. Ahorro de recursos del sistema Cuando un programa hace una llamada a una rutina de una DLL, y la carga en memoria, las sucesivas llamadas a esa rutina de ese programa o cualquier otro, no la volverán a cargar. Sólo se carga una vez y permanece en memoria mientras se necesite. Independencia del lenguaje Podemos tener una DLL construida en Visual C++ y llamar a sus funciones desde nuestro programa en Visual Basic, sólo es necesario conocer el nombre de la función a usar y su protocolo de llamada, esto es, los parámetros a pasar, tipo y valor de retorno de la función. 19
  18. 18. Programación con Visual Basic 6 © Grupo EIDOS Aplicaciones SDI y MDI Una aplicación SDI o de Interfaz de Documento Simple, es aquella en que se utiliza una sola ventana para interactuar con el usuario, el ejemplo más claro es el Bloc de Notas de Windows. Una aplicación MDI o de Interfaz de Documento Múltiple, usa una ventana principal, que actúa como contenedora de una o más ventanas abiertas dentro de la principal. Como ejemplo de este tipo de programas, tenemos a Word. Cada ventana contenida dentro de la principal corresponde con un documento o fichero, el cual podemos maximizar para que ocupe todo el área disponible de la ventana, iconizar, u organizar en mosaico o cascada. OLE OLE es una tecnología que nos permite compartir información entre las diferentes aplicaciones Windows. Desde los tiempos de las aplicaciones DOS, los usuarios han necesitado compartir información entre los distintos programas que usaban, pero las utilidades disponibles para este sistema eran insuficientes. La naturaleza monotarea del DOS complicaba además este problema, al tener que incorporar las aplicaciones sus propios conversores o disponer de programas que realizaran ese trabajo. Con la llegada de Windows, comenzamos a beneficiarnos de las ventajas del portapapeles, como puente para compartir datos de forma sencilla entre dos aplicaciones. Después llegó DDE (Dynamic Data Exchange o Intercambio Dinámico de Datos) como solución más avanzada para compartir información entre programas, aunque sólo permitía utilizar texto y gráficos. Vinculación e incrustación de objetos (OLE), nace en un principio como un avance en cuanto a comunicación de datos entre aplicaciones. Si estamos desarrollando un programa que necesita de las características que proporciona una hoja de cálculo, no necesitamos crearla nosotros, ya existen varias en el mercado sobradamente probadas y fiables, ¿para que volver a realizar el trabajo que ya han hecho otros?. Si esa hoja de cálculo, por ejemplo Excel, soporta OLE, incluimos un objeto OLE de Excel en nuestra aplicación, y toda la funcionalidad de Excel pasará a la nuestra. El programa que contiene un objeto OLE se llama Aplicación Contenedora, y el programa que crea y maneja los objetos OLE se llama Aplicación Servidora. Vinculación Siguiendo con el ejemplo de la hoja de cálculo, un programa que tenga un objeto (fichero XLS) vinculado, al editar el objeto, lanza la aplicación asociada a ese tipo de objeto, en este caso Excel. A partir de ahora utilizamos Excel para modificar el fichero, una vez terminado, grabamos y salimos, con lo que volvemos a nuestro programa original. Figura 1. Esquema de vinculación OLE. 20
  19. 19. © Grupo EIDOS 1. Introducción Este modo de trabajo es útil cuando un objeto necesita ser compartido por varias aplicaciones, ya que la aplicación guarda una referencia al objeto. Incrustación Una aplicación con un objeto incrustado, contiene el propio objeto y no una referencia a un fichero externo. Cuando editemos el objeto no se iniciará la aplicación que genera ese objeto (también llamada aplicación servidora OLE), sino que las barras de menú y herramientas de esa aplicación sustituirán a las de la nuestra durante la edición del objeto; esto es conocido como Negociación de menú. Los cambios realizados en un objeto incrustado sólo serán visibles por la aplicación contenedora de ese objeto. Figura 2. Esquema de incrustación OLE. ActiveX En los últimos tiempos, la denominación OLE ha dejado paso a ActiveX. El motivo de ello, es una campaña de marketing realizada por Microsoft y destinada a relacionar la tecnología OLE con todo lo que tenga que ver con Internet. La base de esta tecnología sigue siendo la misma, pero la tendencia progresiva es la de crear objetos y componentes cada vez más pequeños y reutilizables, que faciliten su transmisión a través de la red. Controles ActiveX y modelo COM / DCOM Hemos visto que OLE en su versión 1.0, nace como una tecnología de comunicación entre aplicaciones. En la versión 2.0, la idea de comunicar aplicaciones se extiende a la de tratar todos los objetos como componentes que pueden ser montados en las aplicaciones, igual que si fueran piezas de una máquina. Este es el origen del llamado modelo COM (Component Object Model), y las piezas son los controles OCX o ActiveX que tomamos de la caja de herramientas e insertamos en los formularios de las aplicaciones. La evolución de los controles OCX ha permitido que estos pasen de estar disponibles desde la máquina local a cualquier máquina conectada a la red, con lo cual, la especificación COM ha pasado a ser DCOM (Distributed Component Object Model), o COM distribuido. De la misma forma, el termino activo ha sido incorporado a todos los elementos que tengan que ver con Internet, así hemos pasado de controles OCX a ActiveX, y de Automatización OLE a Automatización ActiveX 21
  20. 20. Programación con Visual Basic 6 © Grupo EIDOS Automatización ActiveX La automatización ActiveX consiste en la posibilidad de integrar en nuestra aplicación, capacidades existentes en otras aplicaciones, en forma de componentes ActiveX, de manera que no necesitemos volver a codificar el trabajo hecho anteriormente por otros. La aplicación que incorpora los componentes se denomina cliente, y la que suministra los componentes, servidora. De esta forma, podríamos por ejemplo, crear una aplicación que incorporara las capacidades de corrector ortográfico de Word en sus controles de texto. Programación orientada a objeto en Windows La aplicación de técnicas de programación orientada a objeto en Windows, ha supuesto una gran ayuda en el desarrollo de las últimas versiones del sistema. De igual forma, el empleo de la orientación a objetos en los programas destinados a funcionar bajo Windows, se traduce en una mayor sencillez a la hora de enfocar los problemas a resolver y en un código más fácil de mantener. Windows como sistema OOP Al programar en Windows, estamos programando en un sistema orientado a objetos. Todos los elementos son tratados como objetos: ventanas, botones, cuadros de texto, listas desplegables, etc. Por este motivo es muy importante adaptar nuestra forma de enfocar la programación a estas técnicas de desarrollo 22
  21. 21. Visual Basic Desde sus comienzos La aparición de Visual Basic, supuso una auténtica revolución en los lenguajes de programación. Hasta entonces, realizar un programa en Windows, suponía poco menos que ser un experto en C++, y conocer todo el entramado del famoso y extenso API, mensajes, funciones, etc. Visual Basic ponía al alcance de la mayoría de los programadores, sin necesidad de ser unos expertos en programación Windows, la posibilidad de construir aplicaciones en este sistema. Los aspectos más complejos del programa eran resueltos de forma transparente por la herramienta, permitiendo al desarrollador centrarse en lo que la aplicación debía resolver. También es cierto que las posibilidades iniciales eran limitadas, pero en las sucesivas versiones de esta herramienta se han ido incorporando o reforzando aspectos tan importantes como la implementación OOP, aunque todavía no disponga de herencia; manejo de bases de datos locales y remotas, permitiendo usar ficheros tipo Access como formato nativo de datos; dBASE, Paradox mediante controladores ISAM; SQL Server, Oracle a través de ODBC, etc. Todo esto y diversos aspectos más, han hecho que una herramienta pensada originalmente para crear sencillas aplicaciones Windows, llegue a ser uno de los productos más robustos para la creación de grandes aplicaciones corporativas. La situación actual En Visual Basic 6 se ha realizado un gran trabajo de mejora del producto, si bien desde las versiones 4 y 5 dicha labor de actualización se ha notado sobremanera, incorporando y adaptando las más
  22. 22. Programación con Visual Basic 6 © Grupo EIDOS novedosas tecnologías de desarrollo, de forma que se puede considerar que estamos ante una de las mejores herramientas visuales existentes. Algunas de las características más destacables, entre las muchas que incorpora son: la posibilidad de crear ejecutables en Código Nativo para incrementar la velocidad de ejecución; múltiples asistentes para ayudarnos en las más variadas situaciones; creación de controles ActiveX; editor de código fuente mejorado; creación de nuestros propios eventos; acceso a datos mediante OLE DB/ADO; nuevos controles de datos optimizados para ADO; generador de informes propio (ya no es necesario diseñarlos mediante Crystal Reports); jerarquía de objetos para la manipulación de ficheros, etc. Tipos de proyectos Al iniciar el entorno de Visual Basic, ya nos encontramos con la primera novedad. En esta versión podemos elegir al comenzar el tipo de proyecto sobre el que vamos a trabajar entre los disponibles en la ventana de diálogo inicial del producto (figura 3). Figura 3. Ventana de diálogo inicial de Visual Basic 6. • • EXE ActiveX. Ejecutable servidor OLE. • DLL ActiveX. DLL servidora OLE. • Control ActiveX. Permite crear un control de usuario con la Edición de Creación de controles. • Asistente para aplicaciones de VB. Nos guía mediante una serie de pasos, en la construcción de una aplicación, creando la funcionalidad básica, ahorrándonos el trabajo más frecuente, de forma que sólo tengamos que incluir código en los puntos que deseemos personalizar. • 24 EXE estándar. Ejecutable habitual de VB. Administrador de asistentes de VB. Permite configurar cada uno de los asistentes del entorno.

×