| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Gregus Cdt


Registrado: 13 May 2003Mensajes: 9
|
Publicado: Mie 14 May, 2003 12:01 am Asunto: Como parar Bucle? |
|
|
Que hacen...
Soy nuevito en este asunto asi que voy a pedirles algo de ayuda.
Tengo una fución que recibe dos parametros (un entero y un nombre de archivo) y que la llamo y ejecuto cuando doy click en un boton. La función escribe 1 y/o 0 aleatoriamente en un archivo. El total de datos varia de acuerdo a NFR, la función es (Trabajo con B4):
void TForm1::SRand(int NFR char *filen)
{
TMemoryStream* Frames = new TMemoryStream;
char dt;
randomize();
Frames->Position = 0;
for (unsigned long i=0;i<268*NFR*1.0;i++)
{
if (random(2)==1)
dt=49;
else
dt=48;
Frames->Write(&dt, 1);
}
Frames->Position = 0;
Frames->SaveToFile(filen);
delete Frames;
}
Hasta aqui, todo bien. Mi problema es que NFR puede hacer que la cantidad de datos supere el millon, fuera de eso tengo algunas funcionas similares que se ejecutan una detrás de otra al dar INICIO. Asi que necesito a traves de otro boton, parar esta funcion, algo asi como un PARAR o ABORTAR, pero que no sea por medio de Timer, tengo entendido que esto se hace con Thread (hilos). Si me pueden dar una solucion la agradezco desde ahora.
Gracias por su ayuda.
PD: Tambien necesito saber si los datos entrados por el usuario a traves de un TEdit sean sólo números enteros, sin letras ni simbolos. _________________ --Gregus |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Mie 14 May, 2003 12:11 am Asunto: |
|
|
Lo del parar el bucle podrías hacerlo con un while al pulsar una tecla dentro del OnKeyPress (esto lo digo sin haberlo probado):
| Código: |
while (Key!='a' || i<268*NFR*1.0)
....
|
Lo de los números sería algo como:
| Código: |
void __fastcall TForm1::TEdit1KeyPress(TObject *Sender, char &Key)
{
if((Key<'0' || Key >'9') && Key!=8)
Key=0; //ignoro la pulsación
}
|
Suerte![/code] |
|
| Volver arriba |
|
 |
Gregus Cdt


Registrado: 13 May 2003Mensajes: 9
|
Publicado: Mie 14 May, 2003 12:43 am Asunto: Gracias |
|
|
Gracias Marky, el codigo de los números estuvo genial funciono bien.
Para lo del bucle ya intente algo similar y no funciono. Muchas gracias.  _________________ --Gregus |
|
| Volver arriba |
|
 |
cancun Ens

Registrado: 22 Mar 2003Mensajes: 32Ubicación: Cancun, Q.Roo, México
|
Publicado: Mie 14 May, 2003 12:51 am Asunto: |
|
|
Hola
Para detener el ciclo puedes usar un boton que asigne un valor a variable y la validas en cada ciclo, para que el click funcione tienes que llamar a Application->ProcessMessages(); _________________ Saludos
Roger Ruiz |
|
| Volver arriba |
|
 |
Gregus Cdt


Registrado: 13 May 2003Mensajes: 9
|
Publicado: Mie 14 May, 2003 4:27 pm Asunto: Gracias |
|
|
Gracias CANCUN por lo del ciclo, ya probel el truquillo y funciono muy bien. Era exactamente lo que buscaba.  |
|
| Volver arriba |
|
 |
|