PDA

Ver la Versión Completa : Crear escala en ONPAINT.???


vagobiker
03-05-2011, 23:45:31
Buenas Gente.!!

Estoy necesitando ayuda para poder hacer la escala que muestro en la foto en un OnPaint.!! Porque necesito q solo muestre los numeros, para poder colocar una imagen con movimiento atras...

Quien me puede facilitar este codigo.?? Que la escala sea del mismo tamaño del mostrado n la imagen adjunta...

C los agradeceria mucho q me hagan ste favor...

vagobiker
04-05-2011, 02:56:02
Cuando digo OnPaint me refiero a un PaintBox.!!

Neftali [Germán.Estévez]
04-05-2011, 12:15:14
¿Cual es el problema?
Coloca el componente y programa lo que necesites para pintar. Revisa método del Canvas. MoveTo, Line, LineTo, TextOut,...

Haz alguna prueba, verás que no es complejo.

vagobiker
04-05-2011, 20:21:40
¿Cual es el problema?
Coloca el componente y programa lo que necesites para pintar. Revisa método del Canvas. MoveTo, Line, LineTo, TextOut,...

Haz alguna prueba, verás que no es complejo.
Man gracias por colocarme esos comandos, por hay me guie y logre hacer la escala en Onpaint....

Ahora tengo un problemita, yo quiero colocar una animacion detras de la escala, pero no me deja, al correr la aplicacion la animacion queda por encima de la escala, por lo tanto no me deja ver las lineas y numeros de la escala

Como hago para que la animacion me quede detras de las lineas de la escala.??

Neftali [Germán.Estévez]
04-05-2011, 22:26:18
¿Cómo estás haciendo la animación?
¿Puedes explicar que componentes estás utilizando? Es un GIF animado, usas varias imágenes sucesivas,... ¿?¿?:confused::confused:

vagobiker
04-05-2011, 22:50:00
¿Cómo estás haciendo la animación?
¿Puedes explicar que componentes estás utilizando? Es un GIF animado, usas varias imágenes sucesivas,... ¿?¿?

Para la animacion stoy usando la opcion "Animate (ComCtrls)" del menu Win32, y bueno abri un videito .AVI que tenia preparado (de 100Kb)

Y para la escala use un PaintBox del menu System.

Lo q quiero es que la escala del PaintBox c vea por encima de la animacion...

vagobiker
04-05-2011, 22:53:56
Otra cosa como podria configurar un timer + una Timagen para cuadrar que haga el cambio de una serie de imagenes.??

Mas o menos como seria el codigo para q abra la imagen 01 y luego de medio segundo abra la 02 y medio segundo despues la 03 y asi sucesivamente....

vagobiker
06-05-2011, 18:34:50
Problema resuelto...


PERO, por casualidad no saben como hacer para que cuando le de a un boton me abra un archivo PDF.???

José Luis Garcí
06-05-2011, 19:00:56
Creo que deberías abrir un tema nuevo, de todas maneras usa la búsqueda.

Por curiosidad como lo solucionaste, podrías poner algo de código, aunque sea comparativo.

vagobiker
06-05-2011, 19:49:37
Por curiosidad como lo solucionaste, podrías poner algo de código, aunque sea comparativo.
Bueno me fui por lo mas facil que se me ocurrio... Quite la animacion, y preferi agregar una Timagen y generar el cambio de imagenes a traves de los Timer, en mi caso 2, uno para generar un conteo cada cierto tiempo, y el otro para que en ese conteo me cambiara la imagen

El codigo, algo asi:

procedure TFormrotametrollave.Timer_conteoTimer(Sender: TObject);
begin
Xf:=Xf+1;
if (Xf=9) then
begin
Xf:=0;
end;
end;


procedure TFormrotametrollave.Timer_imagenesTimer(Sender: TObject);
begin
if (Xf=0) then
begin
Image1.Picture.LoadFromFile('giro_rotam\01.jpg');
end;
if (Xf=1) then
begin
Image1.Picture.LoadFromFile('giro_rotam\02.jpg');
end;
if (Xf=2) then
begin
Image1.Picture.LoadFromFile('giro_rotam\03.jpg');
end;
if (Xf=3) then
begin
Image1.Picture.LoadFromFile('giro_rotam\04.jpg');
end;
if (Xf=4) then
begin
Image1.Picture.LoadFromFile('giro_rotam\05.jpg');
end;
if (Xf=5) then
begin
Image1.Picture.LoadFromFile('giro_rotam\06.jpg');
end;
if (Xf=6) then
begin
Image1.Picture.LoadFromFile('giro_rotam\07.jpg');
end;
if (Xf=7) then
begin
Image1.Picture.LoadFromFile('giro_rotam\08.jpg');
end;
end;

José Luis Garcí
07-05-2011, 08:35:47
Creo que deberías usar, una TIimagenList con los imágenes y usar un case para la carga de imágenes, si como comentas en tu primer post la imagen es la escala que necesitas, tendría que funcionare perfectamente

Edito, Retiro lo dicho del TimagenList, ya que su tamaño en la altura es mayor que el permitido, pero voy a mirarlo.

José Luis Garcí
07-05-2011, 09:36:23
vagoBiker, hay un componente en las jedi que te prodia servir, el JVImagelist, es algo más complicado de usar, que el ImageList y permite tamaños mucho mayors de todas maneras lo que te comentaba del Case es lo siguiente, tu tienes el Siguiente código

procedure TFormrotametrollave.Timer_imagenesTimer(Sender: TObject);
begin
if (Xf=0) then
begin
Image1.Picture.LoadFromFile('giro_rotam\01.jpg');
end;
if (Xf=1) then
begin
Image1.Picture.LoadFromFile('giro_rotam\02.jpg');
end;
if (Xf=2) then
begin
Image1.Picture.LoadFromFile('giro_rotam\03.jpg');
end;
if (Xf=3) then
begin
Image1.Picture.LoadFromFile('giro_rotam\04.jpg');
end;
if (Xf=4) then
begin
Image1.Picture.LoadFromFile('giro_rotam\05.jpg');
end;
if (Xf=5) then
begin
Image1.Picture.LoadFromFile('giro_rotam\06.jpg');
end;
if (Xf=6) then
begin
Image1.Picture.LoadFromFile('giro_rotam\07.jpg');
end;
if (Xf=7) then
begin
Image1.Picture.LoadFromFile('giro_rotam\08.jpg');
end;
end;


y yo te propongo este otro

procedure TFormrotametrollave.Timer_imagenesTimer(Sender: TObject);
begin
case Xf of
0:Image1.Picture.LoadFromFile('giro_rotam\01.jpg');
1:Image1.Picture.LoadFromFile('giro_rotam\02.jpg');
2:Image1.Picture.LoadFromFile('giro_rotam\03.jpg');
3:Image1.Picture.LoadFromFile('giro_rotam\04.jpg');
4:Image1.Picture.LoadFromFile('giro_rotam\05.jpg');
5:Image1.Picture.LoadFromFile('giro_rotam\06.jpg');
6:Image1.Picture.LoadFromFile('giro_rotam\07.jpg');
7:Image1.Picture.LoadFromFile('giro_rotam\08.jpg');
end;
end;

creo que es más claro y fácil de seguir.

vagobiker
07-05-2011, 15:02:40
Si tienes razon, yo al momento de postear tambien me di cuenta que era posible hacerlo con un "case" como lo muestras, pero como la prueba la hic con puros "if" asi lo deje Jejejeje

Pero bueno creo q a la final voy a cambiarme al case, se ve todo mas organizado... Grax