SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: kati en Miércoles 30 de Mayo de 2007, 23:06
-
Hola a todos...
Tengo una duda, y es que tengo el siguiente "codigo.h":
class OpenSimpleGraphic : public TThread
{
private:
HANDLE hSemaphore;
protected:
void __fastcall Execute(void);
void __fastcall UpdateForm(void);
public:
bool Cond;
__fastcall OpenSimpleGraphic(bool CreateSuspended);
};
..y me interesaría que en el "codigo.cpp", concretamente en "UpdateForm(void) {----}", se me clonara un Form....
Alguien me echa un cable???
xd.
-
no te capto tu inquietud, de verdad si puedes ser mas explicita te lo agradeceria
-
Al clicar un botón hago una llamada al Thread (codigo que has visto antes) y me interesa que me clone un Form.
El caso es el siguiente:
tengo tres valvulas digitales a las que les mido el caudal.
En un Form tengo un DBChart que grafican el valor leído.
me interessa utilizar el mismo form haciendo que se ejecute como un hilo....
saludos y gracias.
-
okey ya te entendi, yo veo 2 caminos, claro de pende de lo que haga la forma, que hagas referencia dentro del cpp a todas las funciones que vaya a ejecutar como un hilo, pero debes trabajar con mas funciones que le envien parametros para saber que tiene que hacer, en cada caso.
otra opcion es que si no es obligado la utilizacion de hilos te aconsejaria trabajar con los timer es una opcion, los conosco mas y se como trabajan.
con los hilos en builder son mas delicados.
espero que esto te ayude, si tienes otra inquietud avisa!
-
Voy a detallar un pokito mas..
El programa consta de un Form1 principal con el que mediante botones se llama a otros forms.
El fom2 (el del caso en cuestión) tiene un Label en el que escribo con un thread de la siguiente forma:
//---------------------------------------------------------------------------
void __fastcall WriteMeasure::Execute(void)
{
do
{
Synchronize(&UpdateLabel);
Sleep(100);
}
while(Cond == true);
}
//---------------------------------------------------------------------------
void __fastcall WriteMeasure::UpdateLabel(void)
{
//variables declaradas en Form2.h
Form1->ReadParameterDirect(iNode, 1, 0, 2, 0,
200, sAnswer, iErrVal, bytStatus, sErrVal);
if(strlen(sErrVal) == 0)
Form2->Label8->Caption = sAnswer;
if(Form2->Visible == false) Cond = false;
}
Además tiene un DBChart que grafía la variable sAnswer.....
Puedo leer mediante este hilo el caudal de todas las valvulas pero se me escriben todas las respuestas (sAnswer) en el mismo Form2->Label8..
Mi pregunta es.. con hilos puedo crear varios Form2 para que se me escriba cada respuesta (sAnswer) en un Form2->Label8 (HILO1); Form2->Label8 (HILO2).....
HAY alguna función o "algo" tipo...: Form2->Create(Form2hilo, Form2).... o algo por el estilo que me lo permita??
xd
-
hola a todos.... :comp:
:kicking: :kicking: Deciros que he solucionado el tema con TABPGDLG, ha sido mas facil de todo lo que yo quería hacer.......aunque también utilizo los threads.. :lightsabre:
Gracias por contestar y un saludo :hola: :hola: :hola: