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.
