ProgramacionFacil

UNIDAD 5.- C++BUILDER COMPONENTES

TEMA 9 CREACION DE COMPONENTES NO VISUALES C++BUILDER


En este temas se analiza, la creación y construcción de componentes no visuales.

La necesidad de este tipo de componentes se desprende del hecho de que existen muchas tareas de programación de carácter repetitivo a lo largo de la construcción de muchas aplicaciones, por ejemplo se manejan en 10 programas, o tareas o aplicaciones distintas el mismo conjunto de tres fórmulas matemáticas o financieras, etc.

En caso como estos, es mas conveniente crear un componente especializado en solución de dichas fórmulas y estarlo reutilizando en las diversas aplicaciones que lo ocupen.

Para realizar esto primero diseñamos la clase correspondiente, tal como el ejemplo de clases en paginas anteriores:


// declaración de la clase, sus variables y sus métodos

Class fórmulas

{

int areatriangulo( int base, int altura);

float pesosdolares (int pesos, float tipocambio);

double promedio(int calif1, int calif2);

}

// implementacion de los métodos de la clase

int formulas::areatriangulo(int base, int altura)

{ return base* altura /2 ;}

float formulas::pesosdolares(int pesos, float tipocambio)

{ return pesos/tipocambio; }

double formulas::promedio(int calif1, int calif2)

{return (calif1+calif2)/2.0 ;}

La pasamos ahora al C++Builder, el procedimiento comentado es:

Procedimiento:

1.- File, Close All

2.- Componente New,

Clase Name = fórmulas

Ancestor = TComponent

Page = Standard

* Observar que todo clase no visual, se deriva de TComponent, con esto se asegura un mínimo visual de propiedades, incluyendo un icono de default, para la barra de componentes y un par de eventos, los métodos de la clase es lo que se va a construir y programar.

3.- File Save As, fórmulas, Save

4.- A la vista queda el editor con formulas.cpp , en la parte de arriba donde dice #include <formulas.h>, poner cursor encima y click derecho para el popupmenu, seleccionar la primera opción, de open source/header file, y con esto ya se tendrán a la vista los dos archivos que se ocupan para construir la clase, ellos son formulas.cpp y formulas.h

En estos dos archivos se construye la clase, la parte declarativa de la clase queda en el archivo formulas.h y la parte de implementacion o los métodos quedan en el archivo formulas.cpp, como observación en PASCAL solo se ocupa el archivo llamado unit.pas y ahí quedan juntos pero en su área apropiada las dos partes de una clase, su declaración y su implementación.

Observar el código ya generado por C++Builder de formulas.h;

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

#ifndef formulasH

#define formulasH

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

#include <vcl\SysUtils.hpp>

#include <vcl\Controls.hpp>

#include <vcl\Classes.hpp>

#include <vcl\Forms.hpp>

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

class fórmulas : public TComponent

{

prívate:

protected:

public:

__fastcall fórmulas(TComponent* Owner);

__published:

};

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

#endif

1.- Recordar que es en este archivo el .h donde se hace la declaración de la clase.

2.- Observar que C++Builder ya definió la clase y la hizo un descendiente publico de TComponent, esto de publico es para permitir que todos los demás componentes puedan accesar las propiedades y métodos de la clase Fórmulas.

3.- Variables, métodos( procedimientos y funciones) y propiedades que ocupe la clase fórmulas deberán declararse dentro de la llaves.

4.- Tomar nota que pueden existir cuatro tipos diferente de variables, métodos y propiedades, ellos son:

prívate: solo métodos dentro de la propia clase, tienen

acceso y pueden manipularlos.

protected: No pueden ser accesados por código fuera de la la clase, pero si por métodos de la propia clase.

public: Código externo, otras clases y métodos propios pueden accesarlos.

_published: Solo para propiedades que se quiera que aparezcan en el inspector de objetos.

5.- Para el ejemplo de la clase que se esta manejando, se escriben o mejor dicho declaran los métodos en la parte publica de la clase, como en el siguiente ejemplo


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

#ifndef formulasH

#define formulasH

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

#include <vcl\SysUtils.hpp>

#include <vcl\Controls.hpp>

#include <vcl\Classes.hpp>

#include <vcl\Forms.hpp>

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

class fórmulas : public TComponent

{

prívate:

protected:

public:

__fastcall fórmulas(TComponent* Owner);

int areatriangulo( int base, int altura);

float pesosdolares (int pesos, float tipocambio);

double promedio(int calif1, int calif2);

__published:

};

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

#endif

6.- La parte de implementacion, se escribe al final del archivo .cpp, como se muestra en el siguiente ejemplo.

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

#include <vcl\vcl.h>

#pragma hdrstop

#include "formulas.h"

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

static inline fórmulas *ValidCtrCheck()

{

return new fórmulas(NULL);

}

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

__fastcall formulas::formulas(TComponent* Owner):TComponent(Owner)

{

}

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

namespace Fórmulas

{

void __fastcall Register()

{

TComponentClass classes[1] = {__classid(fórmulas)};

RegisterComponents("Standard", classes, 0);

}

}

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

// implementacion de los métodos de la clase

int formulas::areatriangulo(int base, int altura)

{ return base* altura /2 ;}

float formulas::pesosdolares(int pesos, float tipocambio)

{ return pesos/tipocambio; }

double formulas::promedio(int calif1, int calif2)

{return (calif1+calif2)/2.0 ;}

* Solo se escriben los últimos renglones y en la posición indicada, es decir al final del archivo .cpp

7.- Files, Save All

8.- File, Close All

9.- Component, Install, Add, Browse, formulas.cpp, Open, Ok hasta

que Done=Make, entonces OK

* Observar el nuevo icono de fórmulas image117.jpgen la barra de componentes.

Ejemplo de aplicación:

1. Pantalla de Diseño:

image118.jpg

b) Código


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

   void __fastcall TForm1::Button1Click(TObject *Sender)

   {

   Edit3->Text=formulas1->promedio(Edit1->Text.ToInt(),

   Edit2->Text.ToInt() );

   }

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

3. Pantalla de corrida

image119.jpg

 




 


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki

Politica de Privacidad