Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Problemas con un Hilo

Hola, tengo un problema con un hilo que he creado. Paso a explicarme.

Primero cree el proyecto y le puse un boton para que ejecute mi hilo:

Unit1.h:
Código:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <Clipbrd.hpp>

#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include "HiloDBG.cpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "DbgCLS"
#pragma resource "*.dfm"

TFormPrincipal *FormPrincipal;
HDebugger *HiloDebugger;

__fastcall TFormPrincipal::TFormPrincipal(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TFormPrincipal::ButtonDesencriptarClick(TObject *Sender)
{
        //Creamos el hilo del debugger
        HiloDebugger = new HDebugger(false);
}
//---------------------------------------------------------------------------
Luego en el HiloDBG.cpp tengo esto:

Código:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "HiloDBG.h"
#include "Unit1.h"

#pragma package(smart_init)

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

//   Important: Methods and properties of objects in VCL can only be
//   used in a method called using Synchronize, for example:
//
//      Synchronize(UpdateCaption);
//
//   where UpdateCaption could look like:
//
//      void __fastcall HDebugger::UpdateCaption()
//      {
//        Form1->Caption = "Updated in a thread";
//      }
//---------------------------------------------------------------------------

__fastcall HDebugger::HDebugger(bool CreateSuspended)
        : TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------

void __fastcall HDebugger::Execute()
{
        //---- Place thread code here ----
        Synchronize(ActualizarDatos);
        //Synchronize((TThreadMethod)&ActualizarDatos);
}
//---------------------------------------------------------------------------

void __fastcall HDebugger::ActualizarDatos(void)
{
        FormPrincipal->Caption = "Actualizado desde el hilo";
}
y el HiloDBG.h:

Código:
#ifndef HiloDBGH
#define HiloDBGH
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
class HDebugger : public TThread
{            
private:
protected:
        void __fastcall ActualizarDatos(void);
        void __fastcall Execute();
public:
        __fastcall HDebugger(bool CreateSuspended);
};
//---------------------------------------------------------------------------
#endif
El problema es que al intentar ejecutarse la linea que cambia el Caption del form pues da la siguiente excepcion:



¿Alguna idea de que puede estar pasando?
Responder Con Cita
 



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
cuando llamo ejecutar un hilo dentro del proceso del hilo no lo hace robertosc Varios 1 14-08-2007 22:11:09


La franja horaria es GMT +2. Ahora son las 17:23:27.


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