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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-02-2015
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 18
NEG1414 Va por buen camino
Problemas para acceder a componenente de un Form desde un Hilo

Buenas..

Llevo dandole vueltas a este problema y estoy desesperado..

Pretendo Modificar un componente que esta en un Form desde un Hilo ejecutado desde el propio form...

El caso es que si el Form no es Modal (hijo) funciona perfectamente....

https://app.box.com/s/hdydb399hsikzauxszhpsiwyv2j6wxvk

Por el contario si el Form es Modal.. el Hilo no hace nada (tampoco da error)

https://app.box.com/s/3nq24hh5dgrl4dk37dx1473aei7n38zr

Necesito que sea modal.

En fin... Debo resignarme, olvidarme por que no es posible hacerlo desde un form Modal.. o por el contrario me dais una alegria y puedo seguir "mi camino"..

Gracias

Última edición por NEG1414 fecha: 05-02-2015 a las 10:01:38.
Responder Con Cita
  #2  
Antiguo 05-02-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No domino C++, pero si es similar a lo que se hace en Delphi, deberías modificar los componentes visuales desde dentro del hilo utilizando sincronización de forma obligatoria (revisa la ayuda sobre el método Synchronize y sus ejemplos).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 05-02-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Como te indica Neftali, es posible pero siempre que vayas a trabajar con un elemento de la VCL desde un hilo, sebes usar si o si, Synchronize.

Te pongo un ejemplo simple de un hilo que modifica un Label en un Form modal:

Código:
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include "Unit3.h"
//---------------------------------------------------------------------------
class ThPrueba : public TThread
{
private:
  TForm3 *Form;
  String LS;
protected:
        void __fastcall Execute();
public:
        __fastcall ThPrueba(TForm3 *form, bool CreateSuspended);
        void __fastcall ActualizaLabel();
};
//---------------------------------------------------------------------------
#endif
Código:
#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"

#pragma package(smart_init)

__fastcall ThPrueba::ThPrueba(TForm3 *form, bool CreateSuspended)
        : TThread(CreateSuspended)
{
  Form = form;
}

void __fastcall ThPrueba::ActualizaLabel()
{
  Form->Label1->Caption = LS;
}


//---------------------------------------------------------------------------
void __fastcall ThPrueba::Execute()
{
   int n=0;
   while(!Terminated){
     LS = n++;
     Synchronize(ActualizaLabel);
     Sleep(500);
   }
}

Saludos.

Última edición por escafandra fecha: 09-03-2020 a las 08:00:24.
Responder Con Cita
  #4  
Antiguo 05-02-2015
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 18
NEG1414 Va por buen camino
Muchas, Muchas Gracias por contestarme... Utilizare Synchrnize y os cuento..

Gracias Otra vez.
Responder Con Cita
Respuesta



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
Acceder a componentes de otro form alexisenp OOP 7 12-12-2011 01:53:32
me ayudan a programar un form desde cero para ventas usando TjvMemorydata??? userdelphi Varios 9 13-01-2011 03:49:50
Problemas para acceder a frames Pedro-Juan OOP 1 22-08-2006 23:42:29
Acceder a form modal desde módulo de datos jcheco Varios 3 31-01-2006 17:18:22


La franja horaria es GMT +2. Ahora son las 08:12:36.


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