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 30-11-2012
DOS994 DOS994 is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 21
Poder: 0
DOS994 Va por buen camino
Parar ProgressBar

Hola a todos:
Tengo este problema.

tengo un progressbar que cuando llega al 2% tiene que cambiar de formulario y ocultar en el que esta.

pero el problema es que dentro del progressbar se encuentra un ciclo for, este hace que al cerrar mi programa me de error de ONSHOW y de ONHIDE intente return este me para el progressbar pero me pestañea al cambiar de formulario.

hay alguna función en el progressbar que lo pare.

el código que tengo es algo así

Código:
for(ProgressBar1->Position=0;ProgressBar1->Position>0<ProgressBar1->Max;ProgressBar1->Position++)
{
Application->ProcessMessages();
Sleep(50);

for(int j=0;j<25;j++)
{
CopyFile((Origen+Archivo[j]).c_str(),(Destino+Archivo[j]).c_str(),false);

}
if(Label1->Caption == "2%")
{
Form4->Show();
return;
Form3->Hide();
}
}
Sleep(250);
ProgressBar1->Position=0;

Gracias de antemano
Responder Con Cita
  #2  
Antiguo 30-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola DOS994.

A ver:
Cita:
tengo un progressbar que cuando llega al 2% tiene que cambiar de formulario y ocultar en el que esta.
Dado que estas ocultando Form3, infiero que el ProgressBar esta situado en él, así que sacando los retardos, que no pueden ser motivo de error y el proceso de copia que me es imposible reproducir, me queda:
Código:
void __fastcall TForm3::Button1Click(TObject *Sender)
{
  TProgressBar *pb = static_cast<TProgressBar*>(ProgressBar1);

  for(pb->Position=0; pb->Position < pb->Max; pb->Position++){
    Label1->Caption = IntToStr(pb->Position)+'%'; // esto no sé donde lo asignas
    Application->ProcessMessages();
    for(int j=0;j<25;j++)
      // CopyFile((Origen+Archivo[j]).c_str(),(Destino+Archivo[j]).c_str(),false);
      Sleep(20); // un retardo para simular la copia
    if(Label1->Caption == "2%") {
      Form4->Show();
      Form3->Hide();
    }
  }
  pb->Position=0;
}
El código, si bién tiene la dolencia de dejar invisible a Form3 cuando Label1 tiene el valor "2%" y no hacerlo visible ante un posible fallo, en ningún momento me arrojó error.

Cita:
hay alguna función en el progressbar que lo pare.
En tu código el ProgressBar actua como variable de control del ciclo for, para pararlo hay que salír de él. Ya sea mediante return, break o finalizar el ciclo dando a la propiedad ProgressBar1.Position el valor de la propiedad ProgressBar1.Max.



Realmente no me queda muy claro la finalidad del código, ni el planteo del problema. ¿ Que error literalmente te esta dando y en que parte del código ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-11-2012 a las 06:28:53. Razón: ortografía
Responder Con Cita
  #3  
Antiguo 30-11-2012
DOS994 DOS994 is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 21
Poder: 0
DOS994 Va por buen camino
Código:
Realmente no me queda muy claro la finalidad del código, ni el planteo del problema. ¿ Que error literalmente te esta dando y en que parte del código ?

Para aclarar más mi problema:

Al cambiar de formualario y cerrar mi programa me da el Error en ONSHOW y ONHIDE pero es porque el progressbar no para solo por tener el ciclo for dentro.


yo cierro exit(0) o cerrando todos los Form con Close()
Responder Con Cita
  #4  
Antiguo 30-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por DOS994 Ver Mensaje
Para aclarar más mi problema:

Al cambiar de formualario y cerrar mi programa me da el Error en ONSHOW y ONHIDE pero es porque el progressbar no para solo por tener el ciclo for dentro.

yo cierro exit(0) o cerrando todos los Form con Close()
Hola DOS994.

Creo que no me he sabido explicar...

Sigo sin saber cual es exáctamente el mensaje error que te da. ¿ Podrías copiarlo y pegarlo en un mensaje para así saber de que se trata ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 04-12-2012
DOS994 DOS994 is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 21
Poder: 0
DOS994 Va por buen camino
la respuesta a mis problemas fue que tenía que destruir la Form3 antes de pasar a la Form4.

Form3->Destroying();

Si no funciona esta probar con la otra opcion de destroying.
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
Parar ejecucion en asp joel20 .NET 4 20-04-2006 11:44:30
parar bucle Cosgaya Varios 11 11-02-2006 16:01:56
Parar el Report Builder. raorre Impresión 0 10-01-2006 09:36:33
parar un evento empty Varios 7 29-04-2004 13:08:17
Como parar la impreción P@kito Impresión 1 19-08-2003 22:48:15


La franja horaria es GMT +2. Ahora son las 20:13:41.


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