Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 30-06-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Bueno lo he conseguido pero no se si es muy ortodoxo o no. Lo que he hecho es esto:
En TInt.h:
Código:
#ifndef Inth
#define Inth
//---------------------------------------------------------------------------

#include "THilo.h"

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

//Declaracion de la clase
class TInt
{
        public:
                TInt(THilo *H);
                ~TInt();

                AnsiString __fastcall toHex(int value);
                AnsiString __fastcall toBin(int value);

        private:
                THilo *Hilo;

};
//---------------------------------------------------------------------------
#endif
En el TInt.cpp tengo esto:
Código:
#include "TInt.h"

TInt::TInt(THilo *H)
{
        Hilo = H;
}
//---------------------------------------------------------------------------

AnsiString __fastcall TInt::toHex(int value)
{
        AnsiString retval = "";
        __try{
                if(Hilo != NULL)
                        retval = Hilo->FuncToHex(value);
        }catch(...){
        }
        return retval;
}
//---------------------------------------------------------------------------

AnsiString __fastcall TInt::toBin(int value)
{
        AnsiString retval = "";
        __try{
                if(Hilo != NULL)
                        retval = Hilo->FuncToBin(value);
        }catch(...){
        }
        return retval;
}
En el TPrueba.h tengo esto:
Código:
#include <vcl.h>

#ifndef PRUEBAH
#define PRUEBAH
#include "TInt.h"

   class TPrueba
   {
        public:
         TPrueba();
                ~TPrueba();
                void __fastcall IniciarHilo(void);
                TInt *Int;

        private:
                THilo *Hilo;

   };
#endif
En el TPrueba.cpp tengo esto:
Código:
TPrueba::TPrueba()
{

}
//---------------------------------------------------------------------------

TPrueba::~TPrueba()
{
        delete Int;
        Int = NULL;
}
//---------------------------------------------------------------------------

void __fastcall TPrueba::IniciarHilo(void)
{
    //Creo el hilo
        Hilo = new THilo(true);

        if(Hilo == NULL)
        {
                MessageBox(Application->Handle,
                           "No se ha podido crear el hilo correctamente.\n Cierre la aplicación e intentelo de nuevo.",
                           "Error",
                           MB_OK | MB_ICONERROR | MB_APPLMODAL);
        }
        else{
                //Creo la otra clase
                Int = new TInt(Hilo);
        }
}
y en el Unit1.cpp tengo esto:
Código:
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        try{
        prueba  = new TPrueba();

    }
    catch(...){
    }
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        ShowMessage(prueba->Int->toHex(100));
        ShowMessage(prueba->Int->toBin(100));
}
Hilo no hace falta que lo ponga aquí porque el problema era acceder a el desde otra clase donde no estaba declarado y asi lo he podido solucionar ¿que os parece esta solucion? ¿chapuza? ¿correcta?
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar mi clase a una clase de 3 capas o lo mas parecido elarys OOP 2 07-04-2011 23:02:54
clase que contiene otra clase definida de forma posterior astwin OOP 5 20-02-2009 11:26:55
Es posible hacer una nueva clase de componente ?? ilichhernandez OOP 7 05-05-2008 16:01:30
Clase jakuna OOP 2 30-08-2007 21:50:35
Clase para hacer ABM mateamargo OOP 3 25-10-2005 22:34:23


La franja horaria es GMT +2. Ahora son las 17:10:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi