SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: loki160685 en Viernes 26 de Enero de 2007, 19:22

Título: Ayuda Con Timer
Publicado por: loki160685 en Viernes 26 de Enero de 2007, 19:22
primeramente gracias anticipadamente por la colaboracion, como ya mencione
estoy desarrollando una aplicacion para la grafica de funciones, y al momento de
graficar dicha funcion quisiera que exista una pausa al graficar cada pixel, la duda que
tengo es que no se como colocarle una pausa al ciclo while, intente con delay(10), pero
leyendo un poco la ayuda adjunta me di cuenta que solo sirve para DOS, luego me di
cuenta que deberia hacerlo con un componente Timer, pero no se como?
Alguien podria darme una ayuda, por favor ya debo presentar el trabajo  :smartass:
Título: Re: Ayuda Con Timer
Publicado por: Eternal Idol en Viernes 26 de Enero de 2007, 19:23
Podes usar Sleep.
Título: Re: Ayuda Con Timer
Publicado por: loki160685 en Domingo 28 de Enero de 2007, 04:07
bueno gracias por la respuesta, ya hice la prueba con Sleep(10), y si se da la pausa,
pero el problema ahora se torna en el siguiente: no me muestra la grafica de la funcion
hasta qie se termina de graficar, es decir que la pantalla donde se deberia graficar
lentamente la funcion ingresada no se grafica sino hasta que se termina el tiempo total
de Sleep, alguna idea de porque?, un concejo que me dieron es que una los punto con el algoritmo de bressenham para lineas, pero no veo que sea muy conveniente.
:smartass:
Título: Re: Ayuda Con Timer
Publicado por: wako13 en Lunes 29 de Enero de 2007, 16:57
por que no usas threads ??
Título: Re: Ayuda Con Timer
Publicado por: Eternal Idol en Lunes 29 de Enero de 2007, 17:10
loki160685: no podria ni imaginarme cual es el problema ya que no dijiste como estas graficando la funcion ...

¿Para que usar diferentes hilos si lo que el quiere es que se vaya pintando una funcion lentamente?
Título: Re: Ayuda Con Timer
Publicado por: JuanK en Lunes 29 de Enero de 2007, 19:37
Es necesario ver que función es estas utilizando para saber a que se debe tu problema y como solucionarlo.
Título: Re: Ayuda Con Timer
Publicado por: Eternal Idol en Martes 30 de Enero de 2007, 09:04
Cita de: "JuanK"
Es necesario ver que función es estas utilizando para saber a que se debe tu problema y como solucionarlo.
¿De verdad? ¿Seguro? Algo hay que hacer para mantener ese promedio de mensajes diarios ...
Título: Re: Ayuda Con Timer
Publicado por: JuanK en Martes 30 de Enero de 2007, 13:33
Cita de: "Eternal Idol"
Cita de: "JuanK"
Es necesario ver que función es estas utilizando para saber a que se debe tu problema y como solucionarlo.
¿De verdad? ¿Seguro? Algo hay que hacer para mantener ese promedio de mensajes diarios ...
Mira pedazo de pendejo PUDRETEya me tienes aburrido, HARTO!!!, vete al diablo con todos tus comentarios y con tus infulas de super YO , no tengo que darte explicaciones de nada ni andar justificando lo que hago o no hago :fire:
 
Ya es hora de que te consigas una novia y ocupes tu tiempo en algo mejor que andar mirando como juzgar a a los demas.

JODETE GRANDISIMO IMBÉCIL Y PIENSA LO QUE SE TE DE LA GRAN REGALADA GANA!!!  :fire:
Título: Re: Ayuda Con Timer
Publicado por: loki160685 en Jueves 1 de Febrero de 2007, 07:10
lamento no haber respondido mas antes, pero estaba un poco atareado, disculpas a
todos por ocasionar los mensajes un poco fuertes, finalmente pude solucionar el
problema gracias a un viejo amigo, el codigo es como sigue:
Código: Text
  1.  
  2.  void __fastcall TfGRAFICADOR::Dib_func(int EX, int EY)
  3.  {
  4.      funcion = new char[eFuncion->Text.Length() + 1];
  5.      StrCopy(func_prueba, Edit1->Text.c_str());
  6.      double x,y;
  7.      double minX=-1*EX,maxX=EX;
  8.      double minY=-1*EY,maxY=EY;
  9.      int x1,y1;
  10.     // EX, EY son las escalas para los ejes
  11.      for(x=-1*EX;x<EX;x+=0.01)
  12.      {
  13.        //aqui se calcula el valor de y
  14.        y=punto_x(x,funcion);//Funcion a graficar y=f(x)
  15.        //Conversion de real devuelto a entero
  16.        x1=(x-minX)*(iGrafica->ClientWidth)/(maxX-minX)+1;
  17.        y1=(iGrafica->ClientHeight)-(y-minY)*(iGrafica->ClientHeight)/(maxY-minY)+1;
  18.        iGrafica->Canvas->Pixels[x1][y1]=clGreen;
  19.        Sleep(wait(x*100)); //<-- y les aseguro que si funciona
  20.      }
  21.  }
  22.  
  23.  
la funcion "punto_x" no es mas que un evaluador que usando pilas y colas
transforma la expresion infija a posfija y en el lugar donde encuentra la "x"
reemplaza el valor que se pasa por valor en la funcion.
Muchas gracias a todos por preocuparse
 :smartass: