Scroll de Label en una Form

¿Hola cómo vas?
Una nueva pregunta para vos, ya que me has resuelto casi todas las dudas que hasta ahora he tenido, lo cual por cierto te agradezco mucho.
Tengo una Form de mediano tamaño, un Label de varias lineas, lo que deseo hacer es que el Label aparezca desde la parte inferior de la Form y vaya subiendo por ésta hasta que desaparezca por completo en la parte superior de la Form y vuelva de nuevo a repetirse desde abajo, esto lo pude hacer usando un Timer cada POR milisegundos, y en el ecvento OnTimer cambiando la propiedad Top del Label y funcionó, lo que sucede como tal es que no me gustó como se ve, ya que a medida que el Label va subiendo por la Form parece que titilara, y la idea mía es que se vea fluido, es decir a medida que va disminuyendo la propiedad Top del Label por el hecho de tener que estar montando el Label en una nueva posición cada vez se ve un parpadeo maluco, ¿habrá forma de mejorar lo que deseo hacer?
Yo antes usaba lo que le llaman doble buffer pero en lenguajes como C usando la librería gráfica Allegro (no se si has escuchado de ella), pero en Delphi o por lo menos para este caso no se como hacer para evitar ese parpadeo.
Gracias por la atención prestada a este mensaje.

1 Respuesta

Respuesta
1
Bueno mira se supone que no debe parpadear también tiene que ver mucho la tarjeta de video que tengas, pero a ver si te sirve este tip:
Útil para desactivar momentáneamente el redibujado de un componente, por ejemplo cuando haces algo con él que produzca parpadeo o algo así.
{Desabilitamos redibujado de Memo1}
Memo1.Perform( WM_SETREDRAW, 0, 0 );
{Aqui iria el código que produce parpadeo}
{Volvemos a habilitar el redibujado}
{Re enable the redraw}
Memo1.Perform( WM_SETREDRAW, 1, 0 );
Memo1.Refresh;
Bueno espero te sirva si no vemos que podemos hacer..
Pues no se como tal si un Memo sea lo que necesite, ya que por ahí ensayé un tal código que posicionaba el cursor en determinada posición de un Memo y usaba una instrucción Memo1.Perform (y algo dentro que no me acuerdo), pero no funcionó, mejor dicho ninguna instrucción Memo1.Perform me funcionó, además como tal no supe como posicionar texto en el memo en una posición que no fuera la inicial y hacer que este text se viera como subiendo, por eso opté por algo más sencillo que fue usar una label con un texto y hacer que la propiedad top fuera disminuyendo por medio de un Timer, pero al subir genera ese efecto maluco de parpadeo...
Es lo que no se si se podría hacer de otra forma pero siguiendo con la misma Label...
Gracias por la atención prestada a este mensaje !
Sabes es que yo lo hago en mi maquina y no tengo ningún parpadeo, ahora intenta poniéndole un Panel abajo y el label sobre el panel, si me explico, esto hará que no repinte la forma.
Intentalo y dime.
Pues como cuando te hice esta pregunta la primer vez ya tenía montada la Label dentro de un panel, más bien va a ser la tarjeta de video que tengo, por que si dices que a ti no te pasa ese efecto maluco de parpadeo y ami si, haciendo según eso casi lo mismo pues es mi tarjeta de video.
Muchas gracias por todo !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas