introduccion al entorno c++ builder 3.0

52
PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN AL ENTORNO DE DESARROLLO C++ BUILDER 3.0

Upload: jose-manuel-manuel-lorenzo

Post on 26-Oct-2014

69 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Introduccion Al Entorno C++ Builder 3.0

PROGRAMACIÓN MULTIMEDIA

INTRODUCCIÓN AL ENTORNO DE DESARROLLO C++ BUILDER 3.0

Page 2: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

2

Programación Multimedia Introducción al C++ Builder 3.0

Biblioteca de clases visuales (VCL)

Componentes

Entorno de desarrollo integrado (IDE)

POO y C++ Builder

Excepciones

Page 3: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

3

Programación Multimedia Introducción al C++ Builder 3.0

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

Page 4: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

4

Programación Multimedia Introducción al C++ Builder 3.0

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

Entorno de desarrollo integrado (IDE)

Page 5: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

5

Programación Multimedia Introducción al C++ Builder 3.0

Entorno de desarrollo integrado (IDE)

Barra de herramientas:

• Objetivo: acelerar las operaciones más comunes del menú principal

• Personalizable

Page 6: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

6

Programación Multimedia Introducción al C++ Builder 3.0

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 InternetAdittional Data AccessWin32 Data ControlsSystem QreportActiveX

Page 7: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

7

Programación Multimedia Introducción al C++ Builder 3.0

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)

Page 8: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

8

Programación Multimedia Introducción al C++ Builder 3.0

Entorno de desarrollo integrado (IDE)

Inspector de objetos:

• Ventana con dos pestañas: propiedades y eventos• Apariencia: propiedades; Funcionalidad: eventos

Page 9: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

9

Programación Multimedia Introducción al C++ Builder 3.0

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)

Page 10: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

10

Programación Multimedia Introducción al C++ Builder 3.0

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

Page 11: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

11

Programación Multimedia Introducción al C++ Builder 3.0

Compilación, ejecución, depuración:

• Compile• Make• Build• Run • Step Over• Trace Into• Run to Cursor

Entorno de desarrollo integrado (IDE)

Page 12: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

12

Programación Multimedia Introducción al C++ Builder 3.0

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

Page 13: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

13

Programación Multimedia Introducción al C++ Builder 3.0

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.

Componentes

Page 14: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

14

Programación Multimedia Introducción al C++ Builder 3.0

Propiedades:

• Elementos del componente que configuran su aspecto y controlan su comportamiento. • Accesibles en tiempo de diseño, y en tiempo de ejecución.

Componentes

Page 15: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

15

Programación Multimedia Introducción al C++ Builder 3.0

Componentes

Métodos:

• Funciones asociadas al componente que pueden invocarse para que el componente realice distintas acciones

Page 16: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

16

Programación Multimedia Introducción al C++ Builder 3.0

Componentes

Eventos:

• Cualquier suceso que puede ocurrirle a un componente

Page 17: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

17

Programación Multimedia Introducción al C++ Builder 3.0

VCL

VCL: Marco de trabajo visual y orientado a objetos

Page 18: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

18

Programación Multimedia Introducción al C++ Builder 3.0

VCL

Parte superior: clases “abstractas”, porque sirven para estructurar y agrupar comportamientos comunes de las clases de la VCL.

Page 19: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

19

Programación Multimedia Introducción al C++ Builder 3.0

• 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

VCL

Page 20: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

20

Programación Multimedia Introducción al C++ Builder 3.0

• 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.

POO y C++ Builder

Page 21: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

21

Programación Multimedia Introducción al C++ Builder 3.0

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

POO y C++ Builder

Page 22: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

22

Programación Multimedia Introducción al C++ Builder 3.0

//En ObjGraf.h:

//-------------------------------------------------- 

#ifndef ObjGrafH

#define ObjGrafH 

// Definición de la clase

TObjGraf class TObjGraf {}; 

#endif

POO y C++ Builder

Page 23: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

23

Programación Multimedia Introducción al C++ Builder 3.0

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;

Page 24: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

24

Programación Multimedia Introducción al C++ Builder 3.0

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;

Page 25: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

25

Programación Multimedia Introducción al C++ Builder 3.0

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;

}

Page 26: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

26

Programación Multimedia Introducción al C++ Builder 3.0

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;

Page 27: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

27

Programación Multimedia Introducción al C++ Builder 3.0

POO y C++ Builder

Page 28: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

28

Programación Multimedia Introducción al C++ Builder 3.0

//En ObjGraf.h:

class TObjGraf { 

public: int X; // Propiedades

int Y;

TColor Color;

TPaintBox *PaintBox; 

void Mostrar (void); // Métodos

};

POO y C++ Builder

Page 29: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

29

Programación Multimedia Introducción al C++ Builder 3.0

//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();} 

POO y C++ Builder

Page 30: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

30

Programación Multimedia Introducción al C++ Builder 3.0

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;} ;

POO y C++ Builder

Page 31: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

31

Programación Multimedia Introducción al C++ Builder 3.0

//En Ppal.cpp:void __fastcall TPpalFrm::FormCreate(TObject *Sender){ObjGraf = new TObjGraf (PaintBox, clRed, 10, 10);}

POO y C++ Builder

Page 32: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

32

Programación Multimedia Introducción al C++ Builder 3.0

POO y C++ Builder

Page 33: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

33

Programación Multimedia Introducción al C++ Builder 3.0

// 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

 };

POO y C++ Builder

Page 34: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

34

Programación Multimedia Introducción al C++ Builder 3.0

// En ObjGraf.cpp:

TCirculo :: TCirculo (TPaintBox * _PaintBox, TColor _Color,int _X, int _Y, int _Radio) : TObjGraf (_PaintBox, _Color, _X, _Y){Radio = _Radio;}

POO y C++ Builder

Page 35: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

35

Programación Multimedia Introducción al C++ Builder 3.0

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.

POO y C++ Builder

Page 36: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

36

Programación Multimedia Introducción al C++ Builder 3.0

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.

POO y C++ Builder

Page 37: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

37

Programación Multimedia Introducción al C++ Builder 3.0

//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); };

POO y C++ Builder

Page 38: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

38

Programación Multimedia Introducción al C++ Builder 3.0

//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);} ...

POO y C++ Builder

Page 39: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

39

Programación Multimedia Introducción al C++ Builder 3.0

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);};

POO y C++ Builder

Page 40: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

40

Programación Multimedia Introducción al C++ Builder 3.0

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.

POO y C++ Builder

Page 41: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

41

Programación Multimedia Introducción al C++ Builder 3.0

// 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 }; 

POO y C++ Builder

Page 42: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

42

Programación Multimedia Introducción al C++ Builder 3.0

//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;

POO y C++ Builder

Page 43: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

43

Programación Multimedia Introducción al C++ Builder 3.0

//Si se usara esta propiedad para escritura: Cir1->X = 100;

//En realidad es como si se hiciera Cir1->SetX(100);

POO y C++ Builder

Page 44: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

44

Programación Multimedia Introducción al C++ Builder 3.0

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.

POO y C++ Builder

Page 45: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

45

Programación Multimedia Introducción al C++ Builder 3.0

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.

Excepciones

Page 46: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

46

Programación Multimedia Introducción al C++ Builder 3.0

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.

Excepciones

Page 47: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

47

Programación Multimedia Introducción al C++ Builder 3.0

ESPECIFICACIÓN:

En ObjGraf.h:// Definicion de la clase EFueraRango//Clase de excepcion por entrar en "fuera de // rango":// salirse de los limites del PaintBoxclass EFueraRango {};

//Con lo que podríamos lanzar una excepción de la //siguiente manera: throw EfueraRango();

Excepciones

Page 48: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

48

Programación Multimedia Introducción al C++ Builder 3.0

Excepciones

CAPTURA:

try {       <bloque de instrucciones críticas>} catch (<tipo excepción1> <variable1>) {       <manejador 1>} catch (<tipo excepción2> <variable2>) {       ...}

Page 49: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

49

Programación Multimedia Introducción al C++ Builder 3.0

VCL:EAccessViolationError de acceso a memoria.EDatabaseErrorEspecifica un error de acceso a base de datos.EDBEditErrorDatos incompatibles con una máscara especificada.EDivByZeroEZeroDivideCaptura errores de división por cero (para división entera y real, respectivamente).EInOutErrorRepresenta un error de E/S de archivo.EInvalidPointerOperaciones no válidas con punteros.EPrinterErrorIndica un error de impresión.

Excepciones

Page 50: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

50

Programación Multimedia Introducción al C++ Builder 3.0

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".

Excepciones

Page 51: Introduccion Al Entorno C++ Builder 3.0

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

51

Programación Multimedia Introducción al C++ Builder 3.0

#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);}

Excepciones

Page 52: Introduccion Al Entorno C++ Builder 3.0

PROGRAMACIÓN MULTIMEDIA

INTRODUCCIÓN AL ENTORNO DE DESARROLLO C++ BUILDER 3.0