Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-08-2005
Antuan Antuan is offline
Miembro
 
Registrado: jul 2005
Ubicación: Madrid
Posts: 73
Poder: 19
Antuan Va por buen camino
Como pongo un mensaje de aviso

Hola tengo que poner un mensaje de espera mientras se ejecuta una funcion.
pero no tiene que tener botones.
Una vez que la funcion termine. El mensaje tiene que desaparecer solo.
Es para avisar al usuario que el programa esta haciendo algo para que no vea se ha quedado colgado.
Pero como soy novato no se como se puede hacer.
Asi que si me podeis decir como puedo hacerlo.
Muchas gracias
Responder Con Cita
  #2  
Antiguo 21-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Prepara un formulario o créalo en tiempo de ejecución incluyendo en el mismo un "TLabel" con un "Espera un momento..." o algo así. Muestra este formulario no con el método "ShowModal" (pues tu función se pararía hasta que el formulario se cerrase) pero con el método "Show". Sin embargo, asegúrate de que la propiedad "FormStyle" del formulario vale "fsStayOnTop", de tal manera que el usuario no pueda dejar de verlo (simulando un "ShowModal") y eso es todo. Cuando tu función termine, justo antes, cierra el formulario y libéralo, si lo ves menester.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 21-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez un ejemplo, aunque mejorable, te parezca algo mejor Antuan.
Archivos Adjuntos
Tipo de Archivo: zip ejemplo.zip (2,0 KB, 51 visitas)
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 21-08-2005 a las 15:08:00. Razón: (actualización)
Responder Con Cita
  #4  
Antiguo 21-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por dec
(...) y eso es todo (...)
¿Pero qué es todo? Quiero decir que en el ejemplo anterior podrías toparte con alguna otra complicación, como, por decir una, que el usuario cerrar el formulario en que se le mostraba el mensaje "Un momento, por favor...".

He preparado otro sencillo ejemplo, que, esta vez, utiliza un "TPanel", en lugar de un "TForm", de tal manera que este no podrá ser cerrado por el usuario. También incluye alguna otra cosa, como una barra de progreso, propiamente.

Pero, piensa que si puedes crear estos elementos en tiempo de diseño (ya te decidas por un formulario, ya por un panel) el código de los ejemplos que te adjunto se reducirá drásticamente, puesto que no tendrás necesidad de crear los controles susomentados en tiempo de ejecución.

En fin. A ver si te resulta de alguna utilidad.
Archivos Adjuntos
Tipo de Archivo: zip ejemplo.zip (2,1 KB, 45 visitas)
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 21-08-2005
Antuan Antuan is offline
Miembro
 
Registrado: jul 2005
Ubicación: Madrid
Posts: 73
Poder: 19
Antuan Va por buen camino
Gracias

He visto los dos ejemplos y el segundo es es que me va a vernir bien.
Intentare modificarlo para que el tiempo de espera no sea fijo sino que dependa del tiempo que tarde la funcion en desarrollarse.
He de presentar el mensaje en pantalla, ejecutar la funcion y cuando me presente el resultado borrar el mensaje.
Todo por programacion Asi que el segundo ejemplo lo veo muy bien.
Muchas gracias David.
Responder Con Cita
  #6  
Antiguo 21-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Antuan
Intentare modificarlo para que el tiempo de espera no sea fijo sino que dependa del tiempo que tarde la funcion en desarrollarse.
Por supuesto, Antuan, el "tiempo" era un mero ejemplo, pero tú podrás hacerlo de varias formas. Te iba a decir que incluso puedes llevar a cabo esta "larga tarea" en un hilo independiente de la aplicación, pero, tal vez con lo visto hasta ahora sea bastante para ambos

Cita:
Empezado por Antuan
He de presentar el mensaje en pantalla, ejecutar la funcion y cuando me presente el resultado borrar el mensaje. Todo por programacion Asi que el segundo ejemplo lo veo muy bien.
Y, seguramente, si le das algunas vueltas, verás que puedes hacerlo de otras formas: ya he dicho otra vez que algo me cae bien especialmente de todo esto: la posibilidad de hacer la misma cosa, sí, pero, de distintas formas.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 23-08-2005
Antuan Antuan is offline
Miembro
 
Registrado: jul 2005
Ubicación: Madrid
Posts: 73
Poder: 19
Antuan Va por buen camino
Intentar hacer una funcion

Hola con el segundo ejemplo he intentado hacer una funcion, pero mi nivel ya sabes que todavia nada de nada y no veo donde esta en primer contador del caption de panel. Pero aun viendolo creo que no sere capaz.
La idea de hacer una funcion en vez de un procedure sigue siendo la misma que el ejemplo que me has enviado con un procedure.
Sacar el mensaje, con el procedure del ejemplo que has puesto aqui o una funcion, mandar llamar a la funcion que te comente que tardaba un poquito en ejecutarse y una vez ejecutada y devolver el resultado. Borrar el menjsaje.
Si la mi funcion tarda tiempo en dar la respuesta el mensje permanecera en pantalla dependiendo del tiempo que tarde la funcion en cumplirse.
Bueno eso es todo pero que para mi es demasiado.
Crei ue Delphi tenia alguna funcion interna en la que presentase un mensaje de espera sin tener botones y que se cierre sola.
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


La franja horaria es GMT +2. Ahora son las 00:16:00.


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