PROGRAMACIÓN MULTIMEDIA

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

Insertar un cuadro de texto
SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
Programación orientada a objetos en Visual Basic .NET
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
1 LA UTILIZACION DE LAS TIC EN LAS MICROEMPRESAS GALLEGAS. AÑO mayo 2005.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO de Junio de 2005.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 5.- 1ª PARTE. EL A.O. Y SUS APLICACIONES
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
Unidad 3 Lenguajes .Net y POO
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Introducción a Windows Forms
Lenguaje de programación Java
C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281. C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281 1-Ingrese a menú 2-Ingrese a Mensajes 3-Ingrese a Correo 4-Seleccione.
1. Apoyo exterior sobre ala inferior de viga de acero
BASE DE DATOS Primeros pasos
1 Reporte Componente Impacto Por Orden Territorial Por Departamento No Disponible ND *Los indicadores para el año 2008 no fueron calculados.
Funciones Excel. Parte 1. Introducción 2 Una función Excel es una fórmula o un procedimiento que se realiza en el ambiente de Visual Basic, fuera de.
Phone2Wave-Server Manual de Operación.
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
50 principios La Agenda 1.- Presentar un único interlocutor a los clientes. 2.- Tratar de modo distinto a las diferentes clases de clientes. 3.- Saber.
Parte 3. Descripción del código de una función 1.
Arquitectura CLARO-TECNOTREE
EL OSO APRENDIZ Y SUS AMIGOS
50 principios 1. Los clientes asumen el mando.
1 PROYECTO DE PRESUPUESTO DE EGRESOS DE LA FEDERACION 2002 COORDINACIÓN DE POLITICA ECONOMICA GP-PRD.
Ecuaciones Cuadráticas
C REACIÓN DE B LOGS EN ESPOL Profesora: Eva María Mera Intriago Escuela Superior Politécnica del Litoral Impulsando la sociedad del conocimiento Instituto.
¡Primero mira fijo a la bruja!
Excepciones Las excepciones son señales (en forma de objeto) que se generan en ejecución en casos de errores, para que puedan ser gestionadas en el programa.
Arquitectura CLARO-TECNOTREE CAPITULO 4: Excepciones
Capitulo 4 Excepciones.
Informática II Prof. Dr. Gustavo Patiño MJ
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
Aplicación del paradigma orientado a objetos
Proyecto Fin de Carrera E.T.S. Ingeniería Informática 26 de Septiembre de 2006 DESARROLLO DE UN COMPONENTE TECLADO ALUMNO: Fco. Javier Sánchez Ramos TUTORES:
Diseño y programación de
Programación Orientada a Objetos en Java
MSc. Lucía Osuna Wendehake
Calendario 2009 “Imágenes variadas” Venezuela Elaborado por: MSc. Lucía Osuna Wendehake psicopedagogiaconlucia.com Enero 2009.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Programación Orientada a Objetos usando C++
Medio de tele-comunicación
Mejoras de C++ Builder. –Las nuevas palabras reservadas que Builder le agrega a C++. –Nueva area de visualización de las clases en C++ Builder. –¿Cómo.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Variables polimórficas (plantillas): definición, uso y aplicación
Actualización de SP3D (Aspectos generales)
CHAPTER 4 VOCABULARY: PART II
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 6: Clases y Abstracción de Datos Índice del capítulo 6.1 Introducción 6.2 Estructuras 6.3 Clases.
FUNDAMENTOS DE CALIDAD EN LA GESTIÓN PÚBLICA
Computación II Unidad X Manejo de Excepciones. Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender.
Control de errores visual basic
Módulo 8: Manejo de Errores y Excepciones
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
La Programación Orientado a Objetos
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Transcripción de la presentación:

PROGRAMACIÓN MULTIMEDIA 11- Octubre-2001 PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN AL ENTORNO DE DESARROLLO C++ BUILDER 3.0 ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Componentes Biblioteca de clases visuales (VCL) POO y C++ Builder Excepciones © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Ventana principal: Menú principal Barra de herramientas Paleta de componentes Inspector de objetos Diseñador de formularios Editor de código © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Menú principal: Ventana principal, siempre visible Menús comunes a cualquier aplicación Windows: File, Edit, Search, Help Título: nombre del proyecto, concepto esencial © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Barra de herramientas: Objetivo: acelerar las operaciones más comunes del menú principal Personalizable © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Paleta de componentes: Componentes: bloques básicos sobre los que se construyen aplicaciones Personalizable Clasificados en distintas pestañas: Standard Internet Adittional Data Access Win32 Data Controls System Qreport ActiveX © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Diseñador de Formularios: Herramienta visual destinada a diseñar y presentar la interfaz de usuario de una aplicación Opciones de la rejilla (Tools|Environment Options) Componente activo (un click) Código asociado (doble click) © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Inspector de objetos: Ventana con dos pestañas: propiedades y eventos Apariencia: propiedades; Funcionalidad: eventos © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Editor de código: Accesible desde el diseñador de formularios Coloreo de la sintaxis, multiarchivo Acceso a la totalidad del código fuente de la aplicación. (Mejor no cambiar el mantenido automáticamente) © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Sistema de ayuda: Ayuda estándar de windows Ayuda contextual (F1) Publicación completa de las propiedades, eventos y métodos de cada componente © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) Compilación, ejecución, depuración: Compile Make Build Run Step Over Trace Into Run to Cursor © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Entorno de desarrollo integrado (IDE) El almacén de objetos: Formularios, cuadros de diálogos, módulos de datos, asistentes, DLLs, etc Prediseñados Punto de partida Ampliable © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Componentes Definición: Elementos genéricos con una funcionalidad muy concreta, cuya única finalidad es la reutilización. Componente VCL: clase que caracteriza a un control de Windows agregando propiedades, métodos y gestores de eventos a cada control. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Componentes Propiedades: Elementos del componente que configuran su aspecto y controlan su comportamiento. Accesibles en tiempo de diseño, y en tiempo de ejecución. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Componentes Métodos: Funciones asociadas al componente que pueden invocarse para que el componente realice distintas acciones © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Componentes Eventos: Cualquier suceso que puede ocurrirle a un componente © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 VCL VCL: Marco de trabajo visual y orientado a objetos © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 VCL Parte superior: clases “abstractas”, porque sirven para estructurar y agrupar comportamientos comunes de las clases de la VCL. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 VCL TObject: Ancestro de todas las clases de la VCL. Encapsula el comportamiento común de todos los objetos TPersistent: objeto que se almacenan en disco o en memoria TComponent: Objetos de la paleta de componentes TControl: Componentes visuales TGraphicControl: Controles visuales, pero que no pueden recibir el foco (Canvas) TWinControl: Controles típicos de Windows TApplication: Aplicaciones windows. TForm: Formularios © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder La P.O.O. es un paradigma de programación que se fundamenta en los conceptos de objeto y clase. Objeto: Una entidad autónoma con una funcionalidad concreta y bien definida. Clase: Especificación de las características de un conjunto de objetos. Un objeto es una instancia de una clase. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder 1. Crear un proyecto (File | New | Application) 2. Cambiar el nombre del formulario (Name=PpalFrm). 3. Colocar un PaintBox de la página de componentes System que se llame PaintBox, con Align=alTop. Dejar espacio por debajo del PaintBox para colocar un botón. 4. Colocar un bevel de ancho 4 y alinearlo en lo alto (Align=alTop). La idea es que delimite la parte inferior del PaintBox. 5. Colocar un botón bit que permita terminar la ejecución del programa. 6. Guardar el código del formulario como Ppal.cpp y el proyecto como Ejemplo.bpr. 7. Crear una unidad (File | New | Unit). Guardarla con el nombre ObjGraf.cpp © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder //En ObjGraf.h: //--------------------------------------------------  #ifndef ObjGrafH #define ObjGrafH  // Definición de la clase TObjGraf class TObjGraf {};  #endif © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder // INSTANCIACIÓN POR DECLARACIÓN //En Ppal.h: #include "ObjGraf.h" En Ppal.cpp: //Pulsando dos veces en OnCreate de la pestaña Events del //editor de objetos de PpalFrm: //--------------------------------------------------  void __fastcall TPpalFrm::FormCreate(TObject *Sender){ TObjGraf ObjGraf1(); TObjGraf ObjGraf2; }  © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder // INSTANCIACIÓN POR DECLARACIÓN //En Ppal.h: #include "ObjGraf.h" En Ppal.cpp: //Pulsando dos veces en OnCreate de la pestaña Events del //editor de objetos de PpalFrm: //--------------------------------------------------  void __fastcall TPpalFrm::FormCreate(TObject *Sender){ TObjGraf ObjGraf1(); TObjGraf ObjGraf2; }  © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder // INSTANCIACIÓN DINÁMICA En Ppal.cpp: TObjGraf * ObjGraf; // Variable Global. // ObjGraf es un puntero a objetos de tipo TObjGraf  void __fastcall TPpalFrm::FormCreate(TObject *Sender){ ObjGraf = new TObjGraf; } © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder // DESTRUCCIÓN DE OBJETOS //En Ppal.cpp: //Pulsando dos veces en OnDestroy de la pestaña Events //del editor de objetos de PpalFrm: //--------------------------------------------------  void __fastcall TPpalFrm::FormDestroy(TObject *Sender){ delete ObjGraf; }  © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder //En ObjGraf.h: class TObjGraf {  public: int X; // Propiedades int Y; TColor Color; TPaintBox *PaintBox;  void Mostrar (void); // Métodos }; © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder //ACCESO A MIEMBROS DE UN OBJETO void __fastcall TPpalFrm::FormCreate(TObject *Sender){ ... int ValorY; ObjGraf->X = 5; ValorY = ObjGraf->Y; ObjGraf->Mostrar(); //Equivalente a (*Obj).Mostrar(); }  © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder CONSTRUCTORES En ObjGraf.h: class TObjGraf { ...  // Constructor de objetos TObjGraf  TObjGraf (TPaintBox *_PaintBox, TColor _Color=clBlack, int _X=0, int _Y=0);  }; En ObjGraf.cpp: TObjGraf :: TObjGraf (TPaintBox * _PaintBox, TColor _Color, int _X, int _Y){ PaintBox = _PaintBox; Color = _Color; X = _X; Y = _Y; } ; © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder //En Ppal.cpp: void __fastcall TPpalFrm::FormCreate(TObject *Sender) { ObjGraf = new TObjGraf (PaintBox, clRed, 10, 10); } © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder // En ObjGraf.h: //************************************************* // Definición de la clase derivada Tcirculo // Deriva de la clase base TObjGraf class TCirculo : public TObjGraf {  public:  int Radio; // Propiedad exclusiva de Tcirculo  }; © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder // En ObjGraf.cpp: TCirculo :: TCirculo (TPaintBox * _PaintBox, TColor _Color,int _X, int _Y, int _Radio) : TObjGraf (_PaintBox, _Color, _X, _Y) { Radio = _Radio; } © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder Los constructores y destructores de una clase no son heredadas automáticamente por sus descendientes. Deberemos crear en las clases hijas sus propios constructores y destructores. Es posible, no obstante, emplear los constructores de la clase base pero hay que indicarlo explícitamente. De ser así, es necesario saber: 1.que los constructores y destructores de las clases base son invocados automáticamente antes que los constructores de las clases derivadas, y que los destructores de las clases derivadas se invocan antes que los de las clases base. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder Clases Abstractas Clase abstracta: es una clase que no está completamente especificada (posee métodos sin implementar), por lo tanto no se pueden crear instancias de la misma. Una clase abstracta se usa para servir de clase base a otras clases. En terminología C++ se dice que una clase abstracta es aquella que posee al menos un método virtual puro. ·         Virtual: obliga a las clases derivadas a implementar ese método. ·         Puro: no pueden crearse instancias de esa clase. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder //En ObjGraf.h: class TObjGraf { public: ... // Otros metodos  virtual void Mostrar (void) = 0; // Metodo //virtual puro };   class TCirculo : public TObjGraf {  public: ...  // Instanciacion del metodo virtual puro de la //clase TObjGraf  void Mostrar (void);  }; © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder //En ObjGraf.cpp: void TCirculo :: Mostrar (void){ PaintBox->Canvas->Pen->Color = Color; PaintBox->Canvas->Brush->Color = Color; PaintBox->Canvas->Ellipse(X, Y, X+Radio*2, Y+Radio*2); } ... © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder TCirculo *Cir1, *Cir2; TCuadrado *Cuad1, *Cuad2;   void __fastcall TPpalFrm::FormCreate(TObject *Sender)    { Cir1 = new TCirculo (PaintBox, clBlack, 100, 100, 30);  Cir2 = new TCirculo (PaintBox, clGreen, 210, 40, 20);               Cuad1 = new TCuadrado (PaintBox, clRed, 200, 150, 45);   Cuad2 = new TCuadrado (PaintBox, clYellow, 120,70,25); }; © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder En C++ se puede especificar el acceso a los miembros de una clase utilizando los siguientes especificadores de acceso: ·         public: Interfaz de la clase. ·         private: Implementación de la clase. ·         protected: Implementación de la familia. Estos especificadores no modifican ni la forma de acceso ni el comportamiento, únicamente controlan desde dónde se pueden usar los miembros de la clase: ·        public: desde cualquier sitio. ·        private: desde los métodos de la clase. ·     protected: desde los métodos de la clase y desde los métodos de las clases derivadas. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder // NUEVAS FORMAS DE ACCESO CON //PROPIEDADES VIRTUALES.  property int X = {read=FX, write=SetX }; property int Y = {read=FY, write=SetY }; property TColor Color ={read=FColor,write=FColor}; property int Ancho = {read=GetAncho}; property int Alto = {read=GetAlto };  © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder //Si en Ppal.cpp se usara esta propiedad para //lectura: int CX = Cir1->X; //En realidad es como si se hiciera int CX = Cir1->FX; © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder //Si se usara esta propiedad para escritura: Cir1->X = 100; //En realidad es como si se hiciera Cir1->SetX(100); © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 POO y C++ Builder POLIMORFISMO Sobrecarga de funciones. Ocurre cuando en una clase existen dos métodos con idéntico nombre pero con distinta lista de parámetros. El compilador los considera como dos métodos distintos y aplicará cada uno de ellos en la situación apropiada. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Excepciones Las excepciones son situaciones anómalas que requieren un tratamiento especial. ¡¡No tienen por qué ser errores!! Si se consigue dominar su programación, la calidad de las aplicaciones que se desarrollen aumentará considerablemente. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Excepciones El funcionamiento general del mecanismo de lanzamiento y tratamiento de excepciones es el siguiente: ·       Existe un método que invoca la ejecución de otro. ·         Este método más interno se encuentra en una situación que puede considerarse como excepcional. Por lo tanto lanza una excepción. ·     En este momento termina la ejecución del método más interno y se retorna inmediatamente al método llamador. ·         El método llamador debe capturar la excepción y la trata. Parte del tratamiento de la excepción puede ser volver a lanzarla al método que invocó a este. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Excepciones ESPECIFICACIÓN: En ObjGraf.h: // Definicion de la clase EFueraRango //Clase de excepcion por entrar en "fuera de // rango": // salirse de los limites del PaintBox class EFueraRango {}; //Con lo que podríamos lanzar una excepción de la //siguiente manera: throw EfueraRango(); © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Excepciones CAPTURA: try {        <bloque de instrucciones críticas> } catch (<tipo excepción1> <variable1>) {        <manejador 1> } catch (<tipo excepción2> <variable2>) {        ... } © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Excepciones VCL: EAccessViolation Error de acceso a memoria. EDatabaseError Especifica un error de acceso a base de datos. EDBEditError Datos incompatibles con una máscara especificada. EDivByZero EZeroDivide Captura errores de división por cero (para división entera y real, respectivamente). EInOutError Representa un error de E/S de archivo. EInvalidPointer Operaciones no válidas con punteros. EPrinterError Indica un error de impresión. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Excepciones o VCL: Las clases de excepción de tipo VCL solamente pueden capturarse por puntero o por referencia (preferible). Las excepciones de tipo VCL deben lanzarse con sintaxis "por valor". © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

Programación Multimedia 11- Octubre-2001 Excepciones #include <vcl.h> #pragma hdrstop  WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {  try { throw Exception("Mi excepción VCL"); } catch (const Exception & E) { ShowMessage("Clase de la excepción capturada: " + AnsiString(E.ClassName()) + "\nMensaje: " + E.Message); } return (0);} © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. ©Carlos A. Lázaro Carrascosa.

PROGRAMACIÓN MULTIMEDIA 11- Octubre-2001 PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN AL ENTORNO DE DESARROLLO C++ BUILDER 3.0 ©Carlos A. Lázaro Carrascosa.