Ver Mensaje Individual
  #2  
Antiguo 26-07-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Reputación: 21
gluglu Va por buen camino
Crea un nuevo formulario que sea 'Modal'.

Utiliza un procedimiento CMAfterShow (puedes buscar ayuda adicional sobre este tema en el foro).
Código Delphi [-]
private
  procedure CMAfterShow(var Msg: TMessage); message CM_AFTERSHOW;

En el evento OnShow del nuevo form deberás poner
Código Delphi [-]
procedure TForm_con_Barra.FormShow(Sender: TObject);
begin
  PostMessage(Self.Handle, CM_AFTERSHOW, 0, 0);
end;

Y en el procedimiento CMAfterShow ya ejecutas el código que quieras incrementando la barra o cualquier código que quieras ejecutar. Al final del código deberás poner Self.Close; para que cuando se termine de ejecutar tu código la ventana se cierre sola y vuelvas a la ventana que lo llamó.

Código Delphi [-]
procedure TForm_con_Barra.CMAfterShow(var Msg: TMessage);
begin
  ..
  Tu Código
  ..
  Self.Close;
end;

Al ser una ventana modal, se impedirá clickear con el ratón en ningún otro sitio más que dentro de esa ventana, y al no poner ningún botón de cierre o parecido, hasta que no finalice el proceso de tu código, la ventana con la barra no se cerrará.

Si quieres mejorarlo, puedes interceptar la tecla ESC y ejecutar un nuevo evento que cierra tu ventana con barra, y/o deberás interceptar Ctrl-F4 propio del windows para decidir que quieres hacer si el usuario quiere cerrar la ventana con la barra de progreso mientras se esté ejecutando.

Espero haberte ayudado.

Saludos
__________________
Piensa siempre en positivo !
Responder Con Cita