FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
mensaje mientras hay proceso
Buenas queridos amigos del foro:
Mi pregunta es la siguiente trabajo con el delphi 6.0 y mysql, en el programa hay un proceso que debeo realizar de llenado de datos a una tabla, y deseo que mientras ese proceso este ejecutandose aparezca una ventana que le diga al usuario que se esta procesando y desaparezca cuando termine, por ahora la unica forma que encontre de hacer esto es mostrar un showmessage al principio y cuando finalize otro showmessage que dice que el proceso ha terminado showmessage('','Texto',''); procedimientos para llenado .. .. showmessage('','Finalizo'); |
#2
|
||||
|
||||
El proceso debes crearlo con un hilo, puedes instanciar un objeto de la clase Thread, de eso hay ejemplos en el IDE, mandas tu mensaje y le das al hilo su respectivo Execute.
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
#3
|
|||
|
|||
Gracias por responder, lamentablemente no tengo los ejemplos ahi asi que quisiera saber si tienes algun ejemplo o algun link donde pueda ver como debo hacer esto?
|
#4
|
||||
|
||||
Yo lo puedo hacer en Builder, conozco Pascal pero no Object Pascal para aqello de la herencia y objetos, me extraña q tu IDE no traiga ejemplos, puedo entender codigo de ahi y pasarlo a C++ pero no siempre al contrario
ahi te paso un ejemplo q trae el builder de como implementar una, espero q te sirva de algo: Código:
class TSparkyThread : public TThread { private: protected: void __fastcall Execute(); public: __fastcall TSparkyThread(bool CreateSuspended); }; __fastcall TSparkyThread::TSparkyThread(bool CreateSuspended) : TThread(CreateSuspended) { } void __fastcall TSparkyThread::Execute() { while (!Terminated) { Beep(); Sleep(500); } } void __fastcall TService1::Service1Start(TService *Sender, bool &Started) { SparkyThread = new TSparkyThread(false); Started = true; } void __fastcall TService1::Service1Continue(TService *Sender, bool &Continued) { SparkyThread->Resume(); Continued = true; } void __fastcall TService1::Service1Pause(TService *Sender, bool &Paused) { SparkyThread->Suspend(); Paused = true; } void __fastcall TService1::Service1Stop(TService *Sender, bool &Stopped) { SparkyThread->Terminate(); Stopped = true; }
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
#5
|
||||
|
||||
Aja!! lo encontre, el ejemplo de como usar una hebra con la WinAPI:
http://www.clubdelphi.com/foros/showthread.php?t=19588
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
#6
|
||||
|
||||
Disculpen, no entiendo para qué usar un hilo. Por lo que describe Marcelo, sólo le interesa mostrar un mensaje que indique al usuario que está corriendo el proceso; no menciona nada de correr el proceso en "background" o algo así.
// Saludos |
#7
|
||||
|
||||
marcelofabiani:
Cita:
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
#8
|
||||
|
||||
Yo sólo quería aclarar para no confundir a Marcelo. Sin embargo, es bueno que hayas mencionado los hilos porque quizá sea una posibilidad que no ha considerado (ejecutar el proceso en segundo plano) y por ello piensa en un mensaje mientras se ejecuta.
// Saludos |
#9
|
||||
|
||||
roman:
Cita:
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
#10
|
||||
|
||||
Yo queria hacer algo igual...me meti con los hilos y se me hizo mucha complicacion solo para un mensaje. Asi que hice lo siguiente: Cree un form con un TLabel con alignment a "aClient". El form lo pongo como centrado y como lo quiero mostrar (sin botones minimizar, cerrar, etc.) obviamente sin dar la posiblidad de cerrarlo mas que por código. Antes de ejecutar la operacion que tomara tiempo, asigno el form a una variable y lo creo al vuelo, modifico lo que quiero que diga el TLabel y muestro el form en forma no-modal para que se quede visible y se siga ejecutando la operacion...durante la operacion que este haciendo puedo inclusive actualizar lo que muestra el form.. al terminar mi opeacion..simplemente libero el form (y la memoria) y listo...
Se que no es una solución muy elegante, pero el resultado es bastante bueno y me ha funcionado muy bien..
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mensaje de cliente a Servidor | NickName | Internet | 5 | 11-01-2006 02:27:51 |
Estado de un mensaje con Indy | juanpare | Internet | 0 | 01-09-2005 12:01:17 |
Tan sencillo como un mensaje de procesando | JorgeBec | Varios | 3 | 26-11-2004 19:12:29 |
App emita Sonido al recibir mensaje netsend | Gelmin | Varios | 1 | 19-07-2004 13:50:06 |
Monólogo de Tato | delphi.com.ar | Humor | 10 | 11-09-2003 22:26:44 |
|