Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
lndice . . Agradecimientos ....................................................................................................................... 6 Contactar con el autor .............................................................................................................. 7 Siete versiones y contando ..................................................................................................... 29 La estructura del libro ............................................................................................................ 31 Normas usadas en este libro ............................................................................................ 32 Parte I . Bases ......................................................................................................................... 33 1 . Delphi 7 y su IDE .............................................................................................................. 35 Ediciones de Delphi ................................................................................................................ 36 Una vision global del IDE ..................................................................................................... 37 Un IDE para dos bibliotecas ............................................................................................ 38 . . Configuration del escritorio ..................................................................................... 38 Environment Options ....................................................................................................... 40 Sobre 10s menus ................................................................................................................. 40 El cuadro de dialog0 Environment Options .............................................................. 41 TO-DO List .......................................................................................................................... 41 Mensajes ampliados del compilador y resultados de busqueda en Delphi 7 .............. 43 El editor de Delphi ................................................................................................................. 44 El Code Explorer ............................................................................................................... 46 . . Exploracion en el editor ................................................................................................... 48 Class Completion .............................................................................................................. 49 Code Insight ...................................................................................................................... 50 Code Completion ......................................................................................................... 50 Code Templates ............................................................................................................ 52 Code Parameters .......................................................................................................... 52 Tooltip Expression Evaluation ................................................................................... 53 Mas teclas de metodo abreviado del editor .................................................................... 53 Vistas que se pueden cargar ............................................................................................. 54 .............................................................................................................. Diagram View 54 Form Designer ......................................................................................................................... 56 ................................................................................................................ Object Inspector 58 Categorias de propiedades .......................................................................................... 60 Object TreeView ................................................................................................................ 61 Secretos de la Component Palette ......................................................................................... 63 Copiar y pegar componentes ............................................................................................ 64 De las plantillas de componentes a 10s marcos ............................................................. 65 Gestionar proyectos ................................................................................................................ 67 Opciones de proyecto ........................................................................................................ 69 .............................................................................................. Compilar y crear proyectos 71 Ayudante para mensajes del compilador y advertencias ......................................... 73 Exploracion de las clases de un proyecto ....................................................................... 74 Herramientas Delphi adicionales y externas .............................. .......... .............................. 75 Los archivos creados por el sistema ..................................................................................... 76 Un vistazo a 10s archivos de codigo fuente .................................................................... 82 El Object Repository ............................................................................................................... 84 Actualizaciones del depurador en Delphi 7 ......................................................................... 87 2 . El lenguaje de programaci6n Delphi .......................................................................... 89 Caracteristicas centrales del lenguaje .................................................................................. 90 Clases y objetos ....................................................................................................................... 91 Mas sobre metodos ............................................................................................................ 93 Creacion de componentes de forma dinamica ............................................................ 94 Encapsulado ............................................................................................................................ 95 ............................................................................................ Privado, protegido y public0 96 Encapsulado con propiedades ......................................................................................... 97 Propiedades de la clase TDate ................................................................................... 99 Caracteristicas avanzadas de las propiedades ........................................................ 100 Encapsulado y formularios ............................................................................................. 101 ........................................................................... Aiiadir propiedades a formularios 101 ......................................................................................................................... Constructores 103 ....................................................................................... Destructores y el metodo Free 104 El modelo de referencia a objetos de Delphi ..................................................................... 104 Asignacion de objetos ..................................................................................................... 105 Objetos y memoria ........................................................................................................... 107 ................................................................................... Destruir objetos una sola vez 108 ..........................................................................................Herencia de 10s tipos existentes 109 ................................................................................ Campos protegidos y encapsulado 111 ............................................................................... Herencia y compatibilidad de tipos 113 ......................................................................................... Enlace posterior y polimorfismo 114 ................................................................................... Sobrescribir y redefinir metodos 11 5 Metodos virtuales frente a metodos dinamicos ............................................................ 117 ......................................................................................... Manejadores de mensajes 117 .......................................................................................................... Metodos abstractos 118 Conversion descendiente con seguridad de tipos .............................................................. 119 ................................................................................................................... Uso de interfaces 121 ..................................................................................................... Trabajar con excepciones 124 ........................................................................... Flujo de programa y el bloque finally 125 ..................................................................................................... Clases de excepciones 127 .......................................................................................................... Registro de errores 129 .............................................................................................................. Referencias de clase 130 Crear . componentes usando referencias de clase ....................................................... 132 . . 3 . La biblioteca en tiempo de ejecuc~on ......................................................................... 135 ........................................................................................................ . Las unidades de la RTL 136 ...................................................................................... Las unidades System y SysInit 139 Cambios recientes en la unidad System .................................................................. 140 Las unidades SysUtils y SysConst ................................................................................. 141 .................................................................................. Nuevas hnciones de SysUtils 142 ........................................ Rutinas extendidas de formato de cadenas en Delphi 7 144 La unidad Math ............................................................................................................... 145 Nuevas funciones matematicas ................................................................................ 145 .................................................................................. Redondeo y dolores de cabeza 147 Las unidades ConvUtils y StdConvs ............................................................................. 148 La unidad DateUtils ........................................................................................................ 148 La unidad StrUtils ........................................................................................................... 149 De Pos a PosEx .......................................................................................................... 150 .............................................................................................................. La unidad Types 151 ....................................................................................... La unidad Variants y VarUtils 151 Variantes personalizadas y numeros complejos ..................................................... 152 Las unidades DelphiMM y ShareMem ......................................................................... 154 Unidades relacionadas con COM .................................................................................. 154 ...................................................................................................................... Convertir datos 154 ................................................................................................... iConversiones de divisas? 158 ........................................................................................ Gestion de archivos con SysUtils 162 La clase TObject ................................................................................................................... 163 Mostrar information de clase ........................................................................................ 167 4 . La biblioteca de clases principales ............................................................................. 169 .............................................................................................. El paquete RTL. VCL y CLX 170 ...................................................................................... Partes tradicionales de la VCL 171 La estructura de CLX ..................................................................................................... 172 Partes especificas de VCL de la biblioteca ................................................................... 173 .............................................................................................................. La clase TPersistent 173 La palabra clave published ............................................................................................. 176 Acceso a las propiedades por su nombre ...................................................................... 177 La clase TComponent ........................................................................................................... 180 ............................................................................................................................ Posesion 180 La matriz Components ......................................................................................... 181 .............................................................................................. Cambio de propietario 182 ......................................................................................................... La propiedad Name 184 . . Elimination de campos del formulario ......................................................................... 185 ...................................................................................... Ocultar campos del formulario 186 .................................................................................... La propiedad personalizada Tag 188 ...................................................................................................... ............................ Eventos : 188 Eventos en Delphi ........................................................................................................... 188 Punteros a metodo ....................................................................................................... 189 Los eventos son propiedades ......................................................................................... 190 Listas y clases contenedores ............................................................................................... 193 Listas y listas de cadena ............................................................................................... 193 ................................................... Pares nombre-valor (y extensiones de Delphi 7) 194 Usar listas de objetos ................................................................................................. 195 ...................................................................................................................... Colecciones 196 Clases de contenedores............................................................................................. 196 . . . . ............................................................................ Listas asociativas de verification 198 Contenedores y listas con seguridad de tipos .......................................................... 199 Streaming ............................................................................................................................... 202 La clase TStream ............................................................................................................. 202 ......................................................................................... Clases especificas de streams 204 .............................................................................................. Uso de streams de archivo 205 ........................................................................................ Las clases TReader y TWriter 206 Streams y permanencia ................................................................................................... 207 .................................................................................. Compresion de streams con ZLib 213 ................... Resumen sobre las unidades principales de la VCL y la unidad BaseCLX 215 ........................................................................................................... La unidad Classes 215 .............................................................................. Novedades en la unidad Classes 216 . . ............................................................................................. Otras unidades prlncipales 217 5 . Controles visuales ........................................................................................................... 219 ...................................................................................................... VCL frente a VisualCLX 220 .......................................................................... Soporte dual de bibliotecas en Delphi 222 ......................................................................... Clases iguales, unidades diferentes 223 DFM y XFM ............................................................................................................... 224 .......................................................................................................... Sentencias uses 226 ............................................... Inhabilitar el soporte de ayuda a la biblioteca dual 226 Eleccion de una biblioteca visual .................................................................................. 226 ................................................................................................... Ejecucion en Linux 227 ........................................................... Compilacion condicional de las bibliotecas 228 .......................................................................... Conversion de aplicaciones existentes 229 ......................................................................................... Las clases TControl y derivadas 230 Parent y Controls ............................................................................................................ 231 Propiedades relacionadas con el tamafio y la posicion del control ........................... 232 ........................................................................ Propiedades de activation y visibilidad 232 Fuentes ............................................................................................................................. 233 Colores ............................................................................................................................. 233 La clase TWinControl (VCL) ........................................................................................ 235 ................................................................................... La clase TWidgetControl (CLX) 236 ................................................................. Abrir la caja de herramientas de componentes 236 Los componentes de entrada de texto ........................................................................... 237 El componente Edit ................................................................................................... 237 El control LabeledEdit ............................................................................................. 238 El componente MaskEdit .......................................................................................... 238 Los componentes Memo y RichEdit ........................................................................ 239 ...................................................................................... El control CLX Textviewer 240 Seleccion de opciones ..................................................................................................... 240 Los componentes CheckBox y RadioButton ........................................................... 241 Los componentes GroupBox ..................................................................................... 241 El componente RadioGroup ..................................................................................... 241 Listas ................. ' ............................................................................................................... 242 El componente ListBox ............................................................................................. 242 El componente ComboBox ....................................................................................... 243 El componente CheckListBox .................................................................................. 244 Los cuadros combinados extendidos: ComboBoxEx y ColorBox ......................... 245 Los componentes Listview y TreeView .................................................................. 246 El componente ValueListEditor ............................................................................... 246 Rangos .............................................................................................................................. 248 El componente ScrollBar .......................................................................................... 248 Los componentes TrackBar y ProgressBar ............................................................. 249 El componente UpDown ........................................................................................... 249 El componente PageScroller .................................................................................... 249 El componente ScrollBox ......................................................................................... 250 Comandos ......................................................................................................................... 250 Comandos y acciones ................................................................................................ 251 Menu Designer .......................................................................................................... 251 Menus contextuales y el evento OncontextPopup .............................................. 252 Tecnicas relacionadas con 10s controles ............................................................................ 254 Gestion del foco de entrada ............................................................................................ 254 Anclajes de control ......................................................................................................... 257 Uso del componente Splitter .......................................................................................... 258 Division en sentido horizontal ................................................................................. 260 Teclas aceleradoras .........................................................................................................261 Sugerencias flotantes ...................................................................................................... 262 .......................................................................... Personalizacion de las sugerencias 263 Estilos y controles dibujados por el propietario .......................................................... 264 Elementos del menu dibujados por el usuario ........................................................ 265 Una ListBox de colores ............................................................................................. 267 Controles ListView y TreeView ........................................................................................... 270 ..................................................................................... Una lista de referencias grafica 270 Un arb01 de datos ............................................................................................................ 275 La version adaptada de DragTree ............................................................................ 278 Nodos de arb01 personalizados ...................................................................................... 280 . . 6 . Creac~on de la interfaz de usuario .............................................................................. 283 Formularios de varias paginas ............................................................................................ 284 Pagecontrols y Tabsheets .............................................................................................. 285 Un visor de imagenes con solapas dibujadas por el propietario ................................ 290 La interfaz de usuario de un asistente .......................................................................... 294 El control ToolBar ................................................................................................................ 297 El ejemplo RichBar ......................................................................................................... 298 Un menu y un cuadro combinado en una barra de herramientas .............................. 300 Una barra de estado simple ............................................................................................ 301 Temas y estilos ...................................................................................................................... 304 Estilos CLX ..................................................................................................................... 305 ................................................................................................... Temas de Windows XP 305 El Componente ActionList .................................................................................................. 308 Acciones predefinidas en Delphi ................................................................................... 310 Las acciones en la practica ............................................................................................ 312 La barra de herramientas y la lista de acciones de un editor ..................................... 316 Los contenedores de barra de herramientas ....................................................................... 318 ....................................................................................................................... ControlBar 320 Un menu en una barra de control ............................................................................ 323 Soporte de anclaje en Delphi ......................................................................................... 323 Anclaje de barras de herramientas en barras de control ............................................ 324 ..................................................................... Control de las operaciones de anclaje 325 Anclaje a un Pagecontrol .............................................................................................. 329 ..................................................................................... La arquitectura de ActionManager 331 Construir una sencilla demostracion ............................................................................ 332 ..................................................... Objetos del menu utilizados con menos frecuencia 336 Modificar un programa existente .................................................................................. 339 Emplear las acciones de las listas ................................................................................. 340 7 . Trabajo con formularios ................................................................................................ 345 La clase TForm ..................................................................................................................... 346 ............................................................................................. Usar formularios normales 346 El estilo del formulario .................................................................................................. 348 El estilo del borde ........................................................................................................... 349 ....................................................................................................... Los iconos del borde 352 Definicion de mas estilos de ventana ............................................................................ 354 Entrada directa en un formulario ........................................................................................ 356 Supervision de la entrada del teclado ........................................................................... 356 Obtener una entrada de raton ........................................................................................ 358 Los parametros de 10s eventos de raton ............................................................... 359 Arrastrar y dibujar con el raton ..................................................................................... 359 Pintar sobre formularios ...................................................................................................... 364 Tecnicas inusuales: Canal Alpha, Color Key y la API Animate ..................................... 366 Posicion, tamaiio, desplazamiento y ajuste de escala ....................................................... 367 . . ............................................................................................. La posicion del formulario 368 ................................................................................. Ajuste a la ventana (en Delphi 7) 368 ........................................................ El tamafio de un formulario y su zona de cliente 369 Restricciones del formulario .......................................................................................... 370 ................................................................................................ Desplazar un formulario 370 Un ejemplo de prueba de desplazamiento ............................................................... 371 Desplazamiento automatico ..................................................................................... 373 ...................................................... Desplazamiento y coordenadas del formulario 374 ................................................................................................. Escalado de formularios 376 Escalado manual del formulario .............................................................................. 377 ............................................................. Ajuste automatic0 de la escala del formulario 378 Crear y cerrar formularios ................................................................................................... 379 Eventos de creacion de formularios .............................................................................. 381 ......................................................................................................Cerrar un formulario 382 ........................................................ Cuadros de dialog0 y otros formularios secundarios 383 Afiadir un formulario secundario a un programa ........................................................ 384 Crear formularios secundarios en tiempo de ejecucion .............................................. 385 ........................................... Crear un unica instancia de formularios secundarios 386 . . Creacion de un cuadro de d~alogo ....................................................................................... 387 El cuadro de dialogo del ejemplo RefList .................................................................... 388 ..................................................................................... Un cuadro de dialog0 no modal 390 . . Cuadros de dialog0 predefinidos ......................................................................................... 393 Dialogos comunes de Windows ................................................................................... 394 Un desfile de cuadros de mensaje ................................................................................. 395 Cuadros "Acerca den y pantallas iniciales ......................................................................... 396 . , Creacion de una pantalla inicial ................................................................................... 397 Parte I1 . Arquitecturas orientadas a objetos en Delphi ............................................... 401 ............................................................... 8 . La arquitectura de las aplicaciones Delphi 403 El objeto Application ............................................................................................................ 404 . . Mostrar la ventana de la aplicacion .............................................................................. 406 Activacion de aplicaciones y formularios .................................................................... 407 Seguimiento de formularios con el objeto Screen ..................................................... 407 De eventos a hilos ................................................................................................................. 412 Programacion guiada por eventos ................................................................................. 412 Entrega de mensajes Windows ...................................................................................... 414 .................................................................................... Proceso secundario y multitarea 414 Multihilo en Delphi ........................................................................................................ 415 Un ejemplo con hilos ................................................................................................ 416 Verificando si existe una instancia previa de una aplicacion .......................................... 418 ................................................................ Buscando una copia de la ventana principal 418 Uso de un mutex .............................................................................................................. 419 Buscar en una lista de ventanas .................................................................................... 420 Controlar mensajes de ventana definidos por el usuario ............................................ 421 Creacion de aplicaciones MDI ............................................................................................ 422 MDI en Windows: resumen tecnico ............................................................................. 422 Ventanas marco y ventanas hijo en Delphi ........................................................................ 423 Crear un menu Window completo ................................................................................. 424 El ejemplo MdiDemo ...................................................................................................... 426 Aplicaciones MDI con distintas ventanas hijo .................................................................. 428 Formularios hijo y mezcla de menus ............................................................................ 428 ................................................................................................... El formulario principal 429 Subclasificacion de la ventana MdiClient .................................................................... 430 Herencia de formularios visuales ........................................................................................ 432 Herencia de un formulario base .................................................................................... 4 3 3 Formularios polimorficos ............................................................................................... 436 Entender 10s marcos ............................................................................................................. 439 Marcos y fichas ............................................................................................................... 442 ................................................................................................. Varios marcos sin fichas 444 Formularios base e interfaces .............................................................................................. 446 Uso de una clase de formulario base ............................................................................. 447 ............................................................ Un truco adicional: clases de interposition 450 Uso de interfaces ............................................................................................................. 451 El gestor de memoria de Delphi .......................................................................................... 452 . . 9 . Creac~on de componentes Delphi ................................................................................. 455 Ampliacion de la biblioteca de Delphi ............................................................................... 456 .............................................................................................. Paquetes de componentes 4 5 6 Normas para escribir componentes ............................................................................... 458 Las clases basicas de componentes ............................................................................... 459 . . Creacion de nuestro primer componente ........................................................................... 460 ............................................................................................ El cuadro combinado Fonts 460 Creacion de un paquete .................................................................................................. 465 ............................................................................... ~QuC hay detras de un paquete? 466 Uso del cuadro combinado Fonts ................................................................................... 469 ................................................................. Los mapas de bits de la Component Palette 469 Creacion de componentes compuestos ............................................................................... 471 .................................................................................................... Componentes internos 471 Publicacion de subcomponentes .................................................................................... 472 .................................................................................................... Componentes externos 475 .......................................................... Referencias a componentes mediante interfaces 477 Un componente grafico complejo ........................................................................................ 481 ......................................................................Definition de una propiedad enumerada 482 Escritura del metodo Paint ............................................................................................. 484 Adicion de las propiedades TPersistent ........................................................................ 486 Definition de un nuevo evento personalizado ............................................................. 488 ..... Uso de llamadas de bajo nivel a la API de Windows : ....................................... 489 La version CLX: Llamadas a funciones Qt nativas ............................................... 490 Registro de las categorias de propiedades .................................................................... 490 Personalizacion de 10s controles de Windows ................................................................... 492 El cuadro de edicion numeric0 ...................................................................................... 494 Un editor numeric0 con separador de millares ...................................................... 495 El boton Sound ................................................................................................................ 496 Control de mensaje internos: El boton Active ........................................................... 498 Mensajes de componente y notificaciones .................................................................... 499 Mensajes de componentes ........................................................................................ 499 Notificaciones a componentes .................................................................................. 503 ................................................................. Un ejemplo de mensajes de componente 503 Un cuadro de dialog0 en un componente ........................................................................... 504 Uso del componente no visual ....................................................................................... 508 Propiedades de coleccion ............................................................................................... 508 Definicion de acciones personalizadas ........................................................................ 512 Escritura de editores de propiedades .................................................................................. 516 Un editor para las propiedades de sonido ................................................................ 517 Instalacion del editor de propiedades ..................................................................... 520 ............................................................................... Creacion de un editor de componentes 521 ......................................................... Subclasificacion de la clase TComponentEditor 522 .................................................................. Un editor de componentes para ListDialog 522 Registro del editor de componentes ........................................................................ 524 10 . Bibliotecas y paquetes ................................................................................................. 527 La funcion de las DLL en Windows ............................................................................ 528 El enlace dinamico .......................................................................................................... 528 Uso de las DLL ................................................................................................................ 529 Normas de creacion de DLL en Delphi ....................................................................... 530 Uso de las DLL existentes .................................................................................................... 531 .................................................................................................... Usar una DLL de C++ 532 Creacion de una DLL en Delphi ......................................................................................... 534 La primera DLL en Delphi ...................................................................................... 535 Funciones sobrecargadas en las DLL de Delphi ................................................... 537 Exportar cadenas de una DLL ................................................................................. 537 Llamada a la DLL de Delphi ...................................................................................... 539 Caracteristicas avanzadas de las DLL en Delphi ............................................................ 540 ............................................................. Cambiar nombres de proyecto y de biblioteca 540 Llamada a una funcion DLL en tiempo de ejecucion .................................................. 542 Un formulario de Delphi en una DLL .......................................................................... 544 Bibliotecas en memoria: codigo y datos ............................................................................. 546 Compartir datos con archivos proyectados en memoria ............................................. 548 Uso de paquetes Delphi ........................................................................................................ 550 Versiones de paquetes .................................................................................................... 551 Formularios dentro de paquetes .......................................................................................... 553 Carga de paquetes en tiempo de ejecucion ................................................................ 555 Uso de interfaces en paquetes .................................................................................. 558 Estructura de un paquete ..................................................................................................... 561 11 . Modelado y programacih orientada a objetos (con ModelMaker) ................... 567 Comprension del modelo interno de ModelMaker ............................................................ 568 Modelado y UML .................................................................................................................. 569 Diagramas de clase ........................................................................................................ 569 Diagramas de secuencia ............................................................................................. 571 Casos de uso y otros diagramas ..................................................................................... 572 Diagramas no W ........................................................................................................ 574 Elementos comunes de 10s diagramas ........................................................................... 575 Caracteristicas de codification de ModelMaker .......................................................... 576 ................................................................................. Integracion Delphi / ModelMaker 576 Gestion del modelo de codigo ........................................................................................ 578 El editor Unit Code Editor ............................................................................................. 580 ........................................................... El editor Method Implementation Code Editor 582 La vista de diferencias .................................................................................................... 582 La vista Event Types View ............................................................................................. 584 ..................................................................................................... Documentacion y macros 585 Documentacion frente a comentarios ............................................................................ 585 Trabajo con macros .........................................................................................................587 Reingenieria de codigo ......................................................................................................... 587 . . Aplicacion de patrones de diseiio .................................................................................. 590 Plantillas de codigo ......................................................................................................... 593 Detallitos poco conocidos ................................................................................................... 595 12 . De COM a COM+ ..................................................................................................... 597 Una breve historia de OLE y COM ..................................................................................... 598 Implementacion de IUnknow .............................................................................................. 599 ............................................................................... Identificadores globalmente unicos 601 El papel de las fabricas de clases .................................................................................. 603 Un primer sewidor COM ..................................................................................................... 604 Interfaces y objetos COM ............................................................................................... 605 Inicializacion del objeto COM ....................................................................................... 608 Prueba del sewidor COM ............................................................................................... 609 Uso de las propiedades de la interfaz ........................................................................... 610 ......................................................................................... Llamada a metodos virtuales 611 ..................................................................................................................... Automatization 612 Envio de una llamada Automatizacion ......................................................................... 614 Creacion de un sewidor de Automatizacion ...................................................................... 617 .................................................................................... El editor de bibliotecas de tipos 618 ..................................................................................................... El codigo del sewidor 619 Registro del sewidor de autornatizacion ...................................................................... 621 Creacion de un cliente para el sewidor ........................................................................ 622 ................................................................ El alcance de 10s objetos de automatizacion 624 El senidor en un componente ...................................................................................... 626 Tipos de datos COM ....................................................................................................... 627 Exponer listas de cadenas y fuentes ....................................................................... 627 Us0 de programas Office ................................................................................................ 628 Uso de documentos compuestos .......................................................................................... 629 ............................................................................................... El componente Container 630 Uso del objeto interno .................................................................................................... 633 Controles ActiveX ................................................................................................................. 633 ........................................................ Controles ActiveX frente a componentes Delphi 635 Uso de controles ActiveX en Delphi ............................................................................. 636 Uso del control WebBrowser .................................................................................... 636 Creacion de controles ActiveX ............................................................................................ 638 Creacion de una flecha ActiveX .................................................................................... 639 Afiadir Nuevas Propiedades ........................................................................................... 640 Adicibn de una ficha de propiedades ............................................................................ 642 ActiveForms ..................................................................................................................... 644 Interioridades de ActiveForm ................................................................................... 644 El control ActiveX XClock ...................................................................................... 645 ActiveX en paginas Web ................................................................................................ 646 COM+ .................................................................................................................................... 648 Creacion de un componente COM+ .............................................................................. 649 Modulos de datos transaccionales ................................................................................. 651 Eventos COM+ ................................................................................................................ 653 COM y .NET en Delphi 7 .................................................................................................... 656 ................................ Parte I11 . Arquitecturas orientadas a bases de datos en Delphi 659 13 . Arquitectura de bases de datos Delphi ..................................................................... 661 Acceso a bases de datos: dbExpress. datos locales y otras alternativas .......................... 662 La biblioteca dbExpress .................................................................................................. 662 Borland Database Engine (BDE) .................................................................................. 664 InterBase Express (IBX) ................................................................................................ 664 MyBase y el componente ClientDataSet ....................................................................... 665 dbGo para ADO ............................................................................................................... 665 MyBase: ClientDataSet independiente ............................................................................... 666 Conexion a una tabla local ya existente ....................................................................... 667 De la DLL Midas a la unidad MidasLib ....................................................................... 669 Formatos XML y CDS .................................................................................................... 669 Definition de una tabla local nueva .............................................................................. 670 Indexado ........................................................................................................................... 671 Filtrado ............................................................................................................................. 672 Busqueda de registros ..................................................................................................... 673 Deshacer y Savepoint ................................................................................................ 674 Activar y desactivar el registro ................................................................................ 675 Usode controles data-aware ................................................................................................ 675 Datos en una cuadricula ................................................................................................. 676 DBNavigator y acciones sobre el conjunto de datos ................................................... 676 Controles data-aware de texto ....................................................................................... 677 Controles data-aware de lista ........................................................................................ 677 El ejemplo DbAware ................................................................................................. 678 Uso de controles de busqueda ........................................................................................ 679 Controles grAficos data-aware ....................................................................................... 681 El componente DataSet ........................................................................................................ 681 El estado de un Dataset .................................................................................................. 686 Los campos de un conjunto de datos .................................................................................. 687 Uso de objetos de campo ................................................................................................ 690 Una jerarquia de clases de campo ................................................................................. 692 ., Adicion de un campo calculado ..................................................................................... 695 Campos de busqueda ....................................................................................................... 699 Control de 10s valores nulos con eventos de campo .................................................... 701 Navegacion por un conjunto de datos ................................................................................. 702 El total de una columna de tabla ................................................................................... 703 Uso de marcadores .......................................................................................................... 704 Edicion de una columna de tabla ................................................................................. 707 Personalizacion de la cuadricula de una base de datos .................................................... 707 Pintar una DBGrid ...................................................................................................... 708 Una cuadricula que permite la seleccion multiple ................................................. 710 ........................................................................................ Arrastre sobre una cuadricula 712 Aplicaciones de bases de datos con controles estandar .................................................... 713 Imitacion de 10s controles data-aware de Delphi ....................................................... 713 Envio de solicitudes a la base de datos ......................................................................... 716 ....................................................................................................... Agrupacion y agregados 718 ...................................................................................................................... Agrupacion 718 ................................................................................................. Definicion de agregados 719 Estructuras maestroldetalles ................................................................................................ 721 Maestro/detalle con 10s ClientDataSet ..................................................................... 722 Control de errores de la base de datos ............................................................................ 723 14 . Clientelsemidor con dbExpress ............................................................................ 727 La arquitectura clientelservidor .......................................................................................... 728 Elementos del disefio de bases de datos .......................................................................... 730 Entidades y relaciones .................................................................................................... 730 Reglas de normalizacion ........................................................................................ 731 De las claves primarias a 10s OID ................................................................................. 731 ................................................................. Claves externas e integridad referencial 733 . . Mas restricciones ............................................................................................................ 734 Cursores unidireccianales ....................................................................................... 734 ...................................................................................................... Introduccion a InterBase 736 ............................................................................................................ Uso de IBConsole 738 Programacion de servidor en InterBase ........................................................................ 740 Procedimientos almacenados ................................................................................. 740 Disparadores (y generadores) ................................................................................... 741 La biblioteca dbExpress ....................................................................................................... 743 Trabajo con cursores unidireccionales ..................................................................... 743 Plataformas y bases de datos ........................................................................................ 744 .................... Problemas con las versiones de controladores e inclusion de unidades 745 Los componentes dbExpress ................................................................................................ 746 El componente SQLConnection .................................................................................... 747 ............................................... Los componentes de conjuntos de datos de dbExpress 751 ........................................................... El componente SimpleDataSet de Delphi 7 752 El componente SQLMonitor .......................................................................................... 753 Algunos ejemplos de dbExpress .................................................................................... 754 Uso de un componente unico o de varios ..................................................................... 755 Aplicacion de actualizaciones .................................................................................. 755 . . Seguimiento de la conexion ..................................................................................... 756 Control del codigo SQL de actualizacion ............................................................... 757 Acceso a metadatos de la base de datos con SetSchemaInfo ................................ 758 ............................................................................................... Una consulta parametrica 760 ....................................................... Cuando basta una sola direccion: imprimir datas 762 Los paquetes y la cache ........................................................................................................ 765 Manipulacion de actualizaciones .................................................................................. 766 El estado de 10s registros .......................................................................................766 Acceso a Delta ........................................................................................................... 767 Actualizar 10s datos .................................................................................................... 768 Uso de transacciones ....................................................................................................... 771 Uso de InterBase Express ............................................................................................... 774 Componentes de conjunto de datos IBX ..................................................................... 776 Componentes administrativos IBX .......................................................................... 777 Creacion de un ejemplo IBX ....................................................................................... 777 Creacion de una consulta en vivo .................................................................................. 779 Control en InterBase Express ........................................................................................ 783 Obtencion de mas datos de sistema ............................................................................... 784 Bloques del mundo real ....................................................................................................... 785 Generadores e identificadores ........................................................................................ 786 Busquedas sin distincion entre mayusculas y minusculas .......................................... 788 Manejo de ubicaciones y personas ........................................................................... 790 Creacion de una interfaz de usuario .......................................................................... 792 Reserva de clases ............................................................................................................. 795 Creacion de un dialogo de busqueda ............................................................................. 798 Adicion de un formulario de consulta libre ................................................................ 800 15 . Trabajo con ADO .......................................................................................................... 803 Microsoft Data Access Componentes (MDAC) ............................................................. 805 Proveedores de OLE DB ............................................................................................. 805 Uso de componentes dbGo ................................................................................................... 807 Un ejemplo practico ................................................................................................... 808 El componente ADOConnection ............................................................................. 811 Archivos de enlace de datos ......................................................................................... 811 Propiedades dinamicas ....................................................................................................... 812 Obtencion de information esquematica ............................................................................ 813 Uso del motor Jet ............................................................................................................. 815 Paradox a traves de Jet ................................................................................................... 816 Excel a traves de Jet ....................................................................................................... 817 Archivos de texto a traves de Jet ............................................................................. 819 . , Importaclon y exportation ............................................................................................ 821 Trabajo con cursores ............................................................................................................. 822 . . Ubicacion de cursor ................................................................................................... 822 Tipo de cursor .................................................................................................................. 823 Pedir y no recibir ............................................................................................................. 825 ................................................................................................ Sin recuento de registros 826 Indices de cliente ............................................................................................................. 826 . . . Repllcaclon ...................................................................................................................... 827 Procesamiento de transacciones .................................................................................... 829 Transacciones anidadas ........................................................................................... 830 Atributos de ADOConnection ................................................................................... 830 Tipos de bloqueo ............................................................................................................. 831 . . El bloqueo peslmlsta ............................................................................................. 832 Actualizacion de 10s datos ................................................................................................... 832 ............................................................................................... Actualizaciones por lotes 834 Bloqueo optimists ........................................................................................................... 836 Resolution de conflictos de actualizacion .................................................................... 839 Conjuntos de registros desconectados ................................................................................ 840 .......................................................................................................... Pooling de conexiones 841 Conjuntos de registros permanentes ............................................................................. 843 ...................................................................................................... El modelo de maletin 844 Unas palabras sobre ALIO.NET ........................................................................................... 845 16 . Aplicaciones DataSnap multicapa ............................................................................. 847 ................................................................ Niveles uno. dos y tres en la historia de Delphi 848 Fundamento tecnico de DataSnap ................................................................................. 850 La interfaz AppSener .................................................................................................... 850 Protocolo de conexion ..................................................................................................... 851 Proporcionar paquetes de datos ..................................................................................... 853 Componentes de soporte Delphi (entorno cliente) .................................................... 854 .................................................... Componentes de soporte Delphi (entorno senidor) 856 Construction de una aplicacion de ejemplo ...................................................................... 856 El primer senidor de aplicacion ................................................................................... 856 El primer cliente ligero .................................................................................................. 858 Adicion de restricciones a1 senidor ....................................................................................860 Restricciones de campo y conjuntos de datos .............................................................. 860 Inclusion de propiedades de campo .............................................................................. 862 Eventos de campo y tabla ............................................................................................... 862 Adicion de caracteristicas a1 cliente ................................................................................... 863 Secuencia de actualization ............................................................................................ 864 Refresco de datos ............................................................................................................. 865 Caracteristicas avanzadas de DataSnap ............................................................................. 867 Consultas por parametros ............................................................................................... 868 Llamadas a metodos personalizados ............................................................................. 868 Relaciones maestroldetalle ............................................................................................. 870 ............................................................................................ Uso del agente de conexion 871 Mas opciones de proveedor ............................................................................................ 872 Agente simple de objetos ................................................................................................ 873 Pooling de objetos ........................................................................................................... 874 Personalizacion de paquetes de datos ........................................................................... 874 17 . CreacMn de componentes de bases de datos ........................................................... 877 El enlace de datos ................................................................................................................. 878 La clase TDataLink ......................................................................................................... 878 Clases de enlaces de datos derivadas ............................................................................ 879 Creacion de controles data-aware orientados a campos .................................................. 880 Una ProgressBar de solo lectura ................................................................................... 880 Una TrackBar de lectura y escritura ............................................................................. 884 Creacion de enlaces de datos personalizados .................................................................... 887 Un componente visualizador de registros .................................................................... 888 .......................................................................... Personalizacion del componente DBGrid 893 .................................................................... Construir conjuntos de datos personalizados 897 La definicion de las clases ............................................................................................. 898 Apartado I: Inicio. apertura y cierre ............................................................................. 902 ..................................................... Apartado 11: Movimiento y gestion de marcadores 907 ............................................... Apartado 111: Buffers de registro y gestion de campos 911 Apartado IV: De buffers a campos ................................................................................ 915 .............................................. Comprobacion el conjunto de datos basado en streams 917 Un directorio en un conjunto de datos ............................................................................... 918 .................................................................................. Una lista como conjunto de datos 919 ......................................................................................................... Datos del directorio 920 Un conjunto de datos de objetos .......................................................................................... 924 . . 18 . Generation de informes con Rave ............................................................................. 931 Presentation de Rave ............................................................................................................ 932 Rave: el entorno visual de creacion de informes ......................................................... 933 El Page Designer y el Event Editor ..................................................................... 934 El panel Property .................................................................................................. 934 El panel Project Tree ................................................................................................. 934 Barras de herramientas y la Toolbar Palette .......................................................... 935 La barra de estado ..................................................................................................... 936 Uso del componente RvProject ...................................................................................... 936 ........................................................................................... Formatos de representacion 938 Conexiones de datos ....................................................................................................... 939 ........................................................................................ Componentes del Rave Designer 941 Componentes basicos ...................................................................................................... 942 Componentes Text y Memo ...................................................................................... 942 El componente Section ............................................................................................. 942 Componentes grhficos ............................................................................................... 943 El componente FontMaster ...................................................................................... 943 .................................................................................................... Numeros de pagina 944 Componentes de dibujo ............................................................................................. 944 Componentes de codigo de barras ........................................................................... 944 Objetos de acceso a datos ............................................................................................... 945 Regiones y bandas ........................................................................................................... 946 El Band Style Editor ................................................................................................. 947 Componentes data-aware ............................................................................................... 949 El Data Text Editor ................................................................................................... 949 De Text a Memo ........................................................................................................ 950 Calculo de totales ...................................................................................................... 951 ................................................................................ Repeticion de datos en paginas 951 ....................................................................................................................... Rave avanzado 951 ................................................................................................
Compartir