La cara oculta de DELPHI 4 - · PDF file¿es delphi su lenguaje? 29 ... 3. unidades,...

914

Transcript of La cara oculta de DELPHI 4 - · PDF file¿es delphi su lenguaje? 29 ... 3. unidades,...

  • ...Mientras intentaba intilmente atrapar un rayo de luzen los confines de una oscura galaxia,Ella escuchaba a los tres guardianes

    del secreto de la Pirmide,y con el Resplandor de sus manos

    me indicaba el camino de regreso a casa...

    A Naroa, porque sigo creyendo en ella.\

  • INDICEINDICE

    PRLOGO DEL AUTOR 19

    CONVENIOS SINTCTICOS 21ACERCA DE LA TERMINOLOGA EMPLEADA 21AGRADECIMIENTOS 21

    PRLOGO A LA SEGUNDA EDICIN 23

    PARA MS EJEMPLOS Y ACTUALIZACIONES... 23

    ENTORNO Y HERRAMIENTAS 27

    1. ES DELPHI SU LENGUAJE? 29

    BREVE HISTORIA DE UN LENGUAJE LLAMADO DELPHI 29ES DELPHI UN LENGUAJE SENCILLO? 31PROGRAMACIN ORIENTADA A OBJETOS VERDADERA 32ARQUITECTURA INTEGRADA DE COMPONENTES 33DELPHI GENERA CONTROLES ACTIVEX 34TRATAMIENTO DE EXCEPCIONES 34VELOCIDAD DE EJECUCIN 35VELOCIDAD DE COMPILACIN Y ENLACE 35RETROALIMENTACIN INMEDIATA 36EL DEPSITO DE OBJETOS Y LA HERENCIA VISUAL 36APLICACIONES DISTRIBUIDAS 37COMPONENTES DE DELPHI 38

    2. HERRAMIENTAS Y UTILIDADES 41

    DELPHI Y EL TECLADO 41CODE INSIGHT: AYUDA DURANTE LA EDICIN 44CLASS COMPLETION 48HERRAMIENTAS DE DEPURACIN 49OBJECT BROWSER 51BDE ADMINISTRATOR 51DATABASE EXPLORER 52DATABASE DESKTOP 53DATA MIGRATION WIZARD 54SQL MONITOR 55IMAGE EDITOR 55

  • 4 La Cara Oculta de Delphi

    3. UNIDADES, PROYECTOS Y PAQUETES 57

    LA ESTRUCTURA DE UN PROYECTO DE APLICACIN 58QU SE PUEDE DECLARAR? 60SINTAXIS DE LAS UNIDADES 62LA CLUSULA USES Y LAS REFERENCIAS CIRCULARES 64LA INCLUSIN AUTOMTICA DE UNIDADES 65LOS FICHEROS DFM 66BIBLIOTECAS DE ENLACE DINMICO 68PAQUETES 69EL ABC DEL USO DE PAQUETES 72PAQUETES DE TIEMPO DE DISEO Y DE EJECUCIN 73LOS GRUPOS DE PROYECTOS 74

    4. SISTEMAS DE BASES DE DATOS 77

    ACERCA DEL ACCESO TRANSPARENTE A BASES DE DATOS 77BASES DE DATOS RELACIONALES 78INFORMACIN SEMNTICA = RESTRICCIONES 80RESTRICCIONES DE UNICIDAD Y CLAVES PRIMARIAS 81INTEGRIDAD REFERENCIAL 82QU TIENE DE MALO EL MODELO RELACIONAL? 83BASES DE DATOS LOCALES Y SERVIDORES SQL 85CARACTERSTICAS GENERALES DE LOS SISTEMAS SQL 87EL FORMATO PARADOX 88EL FORMATO DBF7 91CRITERIOS PARA EVALUAR UN SERVIDOR SQL 92INTERBASE 95MICROSOFT SQL SERVER 97ORACLE 99OTROS SISTEMAS DE USO FRECUENTE 100

    5. EL MOTOR DE DATOS DE BORLAND 103

    QU ES, Y CMO FUNCIONA 104CONTROLADORES LOCALES Y SQL LINKS 105ACCESO A FUENTES DE DATOS ODBC 106DNDE SE INSTALA EL BDE? 106EL ADMINISTRADOR DEL MOTOR DE DATOS 108CONFIGURACIN DEL REGISTRO E INFORMACIN DE VERSIN 108EL CONCEPTO DE ALIAS 110PARMETROS DEL SISTEMA 110PARMETROS DE LOS CONTROLADORES PARA BD LOCALES 112BLOQUEOS OPORTUNISTAS 114PARMETROS COMUNES A LOS CONTROLADORES SQL 114CONFIGURACIN DE INTERBASE 117

  • Indice 5

    CONFIGURACIN DE MS SQL SERVER 118CONFIGURACIN DE ORACLE 120CONFIGURACIN DE OTROS SISTEMAS 121CREACIN DE ALIAS PARA BASES DE DATOS LOCALES Y SQL 121ALTERNATIVAS AL MOTOR DE DATOS 122

    FUNDAMENTOS DEL LENGUAJE 125

    6. PROGRAMACIN ORIENTADA A OBJETOS: ENCAPSULAMIENTO 127

    EL PROBLEMA DE LA DIVISIN EN MDULOS 127LOS MDULOS EN LA PROGRAMACIN ESTRUCTURADA 128REUSABILIDAD Y EL PRINCIPIO ABIERTO/CERRADO 129LLEGAN LOS OBJETOS 130OPERACIONES SOBRE UN TIPO DE DATOS: FUNCIONES 132OPERACIONES SOBRE UN TIPO DE DATOS: MTODOS 134LA PRIMERA VENTAJA: NOMBRES MS CORTOS 135LA IMPLEMENTACIN DE UN MTODO 136EL ESTADO INTERNO DE UN OBJETO 138PARMETROS POR OMISIN 140PBLICO Y PRIVADO 140LAS VARIABLES DE OBJETOS SON PUNTEROS 142CONSTRUCCIN Y DESTRUCCIN: EL CICLO DE LA VIDA 143DEFINIENDO CONSTRUCTORES Y DESTRUCTORES 144

    7. HERENCIA Y POLIMORFISMO 147

    HERENCIA = EXTENSIN + ESPECIALIZACIN 147UN GATO CON BOTAS SIGUE SIENDO UN GATO 149LA CLASE TOBJECT 152JERARQUAS DE HERENCIA 153HERENCIA MLTIPLE, S O NO? 154REDEFINICIN DE MTODOS 155LA TABLA DE MTODOS VIRTUALES 158UTILIZANDO EL COMPORTAMIENTO HEREDADO 160SOBRECARGA: HAY MUY POCOS NOMBRE BUENOS 161PBLICO, PROTEGIDO, PRIVADO... 163MTODOS ABSTRACTOS 164REFERENCIAS DE CLASE 165CONSTRUCTORES VIRTUALES 167INFORMACIN DE TIPOS EN TIEMPO DE EJECUCIN 168MTODOS DE CLASE 170

  • 6 La Cara Oculta de Delphi

    8. ELEMENTOS DE PROGRAMACIN CON WINDOWS 173

    SI ME NECESITAS, LLMAME! 173QU ES UNA VENTANA? 174CLASES DE VENTANA 175EVENTOS O, MS BIEN, MENSAJES 176EL CICLO DE MENSAJES Y LA COLA DE MENSAJES 177EJECUCIN MODAL Y NO MODAL 180EL PROCEDIMIENTO DE VENTANA 180INTERCEPTANDO MENSAJES EN DELPHI 181TAMBIN PODEMOS ENVIAR MENSAJES 184APLICACIONES EN LA BANDEJA DE ICONOS 184CICLO DE MENSAJES Y CONCURRENCIA 187CUANDO NO HAY NADA MEJOR QUE HACER 188EJECUTAR Y ESPERAR 189

    9. PROPIEDADES 191

    LOS PROBLEMAS DE LA POO CLSICA 191PROPIEDADES 194IMPLEMENTACIN DE PROPIEDADES MEDIANTE ATRIBUTOS 195SI NO CREEMOS EN LA ALQUIMIA 197LA SEMNTICA DE LA ASIGNACIN A PROPIEDADES 198PROPIEDADES VECTORIALES 200PROPIEDADES VECTORIALES POR OMISIN 202ESPECIFICACIONES DE ALMACENAMIENTO 202ACCESO A PROPIEDADES POR SU NOMBRE 205

    10. EVENTOS 207

    PUNTEROS A FUNCIONES 207PUNTEROS A MTODOS 208OBJETOS ACTIVOS: ABAJO LA VIGILANCIA! 210EVENTOS VS REDEFINICIN DE MTODOS VIRTUALES 212EL EMISOR Y EL RECEPTOR DEL EVENTO 214RECEPTORES COMPARTIDOS 215TIPOS DE EVENTOS 216NOS PIDEN NUESTRA OPININ... 218LOS EVENTOS EXPRESAN CONTRATOS SIN OBLIGACIONES 218ACTIVACIN RECURSIVA 219

    11. EXCEPCIONES 223

    SISTEMAS DE CONTROL DE ERRORES 223CONTRATOS INCUMPLIDOS 224CMO SE INDICA UN ERROR 225

  • Indice 7

    LA EJECUCIN DEL PROGRAMA FLUYE EN DOS DIMENSIONES 226EL ESTADO DE PNICO 227PAGAMOS NUESTRAS DEUDAS 227EL CONCEPTO DE "RECURSO DE PROGRAMACIN" 228CMO TRANQUILIZAR A UN PROGRAMA ASUSTADO 229EJEMPLOS DE CAPTURA DE EXCEPCIONES 230CAPTURANDO EL OBJETO DE EXCEPCIN 231DISTINGUIR EL TIPO DE EXCEPCIN 231LAS TRES REGLAS DE MARTEENS 233CICLO DE MENSAJES Y MANEJO DE EXCEPCIONES 234EXCEPCIONES A LA TERCERA REGLA DE MARTEENS 235EL EVENTO ONEXCEPTION 236LA EXCEPCIN SILENCIOSA 239CONSTRUCTORES Y EXCEPCIONES 240ASERCIONES 243

    12. TIPOS DE DATOS DE DELPHI 247

    TIPOS NUMRICOS 247FECHAS Y HORAS 249CADENAS DE CARACTERES CORTAS 251PUNTEROS A CARACTERES, AL ESTILO C 253CADENAS DE CARACTERES LARGAS 254VECTORES ABIERTOS 256VECTORES DINMICOS 258VECTORES ABIERTOS VARIANTES 259VARIANTES 260CLASES PARA LA REPRESENTACIN DE LISTAS 261STREAMS: FICHEROS CON INTERFAZ DE OBJETOS 264

    13. TCNICAS DE GESTIN DE VENTANAS 267

    QU HACE DELPHI CUANDO LO DEJAMOS SOLO? 267CREACIN INMEDIATA DE VENTANAS MODALES 269CREACIN INMEDIATA DE VENTANAS NO MODALES 271MTODOS DE CLASE PARA LA CREACIN DINMICA 273CMO TRANSFORMAR INTROS EN TABS 276CMO LIMITAR EL TAMAO DE UNA VENTANA 277CMO DISTRIBUIR EL REA INTERIOR ENTRE DOS REJILLAS 279VENTANAS DE PRESENTACIN 281

    14. LOS MDULOS DE DATOS Y EL DEPSITO DE OBJETOS 283

    LA GALERA DE PLANTILLAS DE DELPHI 1 283EL DEPSITO DE OBJETOS 284LAS PROPIEDADES DEL DEPSITO 286

  • 8 La Cara Oculta de Delphi

    LA UBICACIN DEL DEPSITO DE OBJETOS 287USAR, COPIAR O HEREDAR? 289HERENCIA VISUAL DENTRO DEL PROYECTO 292HERENCIA DE EVENTOS 292LAS PLANTILLAS DE COMPONENTES 293LOS MDULOS DE DATOS 294

    COMPONENTES PARA BASES DE DATOS 297

    15. CONJUNTOS DE DATOS: TABLAS 299

    LA JERARQUA DE LOS CONJUNTOS DE DATOS 299LA ARQUITECTURA DE OBJETOS DEL MOTOR DE DATOS 301TABLAS 303CONEXIN CON COMPONENTES VISUALES 306NAVEGANDO POR LAS FILAS 308MARCAS DE POSICIN 310ENCAPSULAMIENTO DE LA ITERACIN 311LA RELACIN MASTER/DETAIL 313NAVEGACIN Y RELACIONES MASTER/DETAIL 316EL ESTADO DE UN CONJUNTO DE DATOS 321

    16. ACCESO A CAMPOS 323

    CREACIN DE COMPONENTES DE CAMPOS 323CLASES DE CAMPOS 325NOMBRE DEL CAMPO Y ETIQUETA DE VISUALIZACIN 327ACCESO A LOS CAMPOS POR MEDIO DE LA TABLA 328EXTRAYENDO INFORMACIN DE LOS CAMPOS 328LAS MSCARAS DE FORMATO Y EDICIN 330LOS EVENTOS DE FORMATO DE CAMPOS 331VALIDACIN A NIVEL DE CAMPOS 333PROPIEDADES DE VALIDACIN 334CAMPOS CALCULADOS 335CAMPOS DE BSQUEDA 336LA CACH DE BSQUEDA 338EL ORDEN DE EVALUACIN DE LOS CAMPOS 339EL DICCIONARIO DE DATOS 340CONJUNTOS DE ATRIBUTOS 341IMPORTANDO BASES DE DATOS 342EVALUANDO RESTRICCIONES EN EL CLIENTE 343INFORMACIN SOBRE CAMPOS 346CREACIN DE TABLAS 347

  • Indice 9

    17. CONTROLES DE DATOS Y FUENTES DE DATOS 351

    CONTROLES DATA-AWARE 351LOS ENLACES DE DATOS 353CREACIN DE CONTROLES DE DATOS 354LOS CUADROS DE EDICIN 355EDITORES DE TEXTO 356TEXTOS NO EDITABLES 357COMBOS Y LISTAS CON CONTENIDO FIJO 357COMBOS Y LISTAS DE BSQUEDA 360CASILLAS DE VERIFICACIN Y GRUPOS DE BOTONES 362IMGENES EXTRADAS DE BASES DE DATOS 363LA TCNICA DEL COMPONENTE DEL POBRE 363PERMITIENDO LAS MODIFICACIONES 365BLOB, BLOB, BLOB 367LA CLASE TBLOBSTREAM 368

    18. REJILLAS Y BARRAS DE NAVEGACIN 371

    EL FUNCIONAMIENTO BSICO DE UNA REJILLA DE DATOS 371OPCIONES DE REJILLAS 372COLUMNAS A LA MEDIDA 373GUARDAR Y RESTAURAR LOS ANCHOS DE COLUMNAS 376LISTAS DESPLEGABLES Y BOTONES DE EDICIN 377NMEROS VERDES Y NMEROS ROJOS 379MS EVENTOS DE REJILLAS 381LA BARRA DE DESPLAZAMIENTO DE LA REJILLA 382REJILLAS DE SELECCIN MLTIPLE 383BARRAS DE NAVEGACIN 384HABA UNA VEZ UN USUARIO TORPE, MUY TORPE 385AYUDAS PARA NAVEGAR 385EL COMPORTAMIENTO DE LA BARRA DE NAVEGACIN 386REJILLAS DE CONTROLES 388

    19. INDICES 391

    INDICES EN PARADOX 391INDICES EN DBASE 392INDICES EN INTERBASE 394INDICES EN MS SQL SERVER 394INDICES EN ORACLE 395CON QU NDICES PODEMOS CONTAR 396ESPECIFICANDO EL NDICE ACTIVO 398ESPECIFICANDO UN ORDEN EN TABLAS SQL 399BSQUEDA BASADA EN NDICES 401IMPLEMENTACIN DE REFERENCIAS MEDIANTE FINDKEY 403

  • 10 La Cara Oculta de Delphi

    BSQUEDAS UTILIZANDO SETKEY 403EXPERIMENTANDO CON SETKEY 404POR QU EXISTE SETKEY? 405RANGOS: DESDE EL ALFA A LA OMEGA 406EL EJEMPLO DE RANGOS DE CASI TODOS LOS LIBROS 408MS PROBLEMAS CON LOS NDICES DE DBASE 410CMO CREAR UN NDICE TEMPORAL 411

    20. MTODOS DE BSQUEDA 413

    FILTROS 413ESTO N