Parpadeo al llenar 30 ListBox
Hola estimados amigos.
Estoy realizando la carga de 30 ListBox de manera simultanea cada segundo. El problema es que parpadean al terminar la carga, he intentado con la propiedad Código:
ListBox.Items.BeginUpdate/EndUpdate aún así el problema persiste. He adicionado la instrucción Código:
LockWindowUpdate ¿Alguna recomendación?, se los agradeceria mucho. Saludos. |
La solucion profesional y mas adecuada para estos casos es implementar Hilos. aunque no comentas como lo estas haciendo ni de que manera.
|
Cita:
Realizo el proceso en un timer que se ejecuta cada Segundo. Se carga una consulta con N Cantidad de registros, los cuales son acomodados en los 30 ListBox ( cada ListBox esta contenido dentro de un Panel, tanto como los ListBox y los Panel forman parte de un arreglo) Al finalizar el acomodo, habilito el "EndUpdate de los listBox afectados." Bosquejo del Código Código:
procedure TFExpo.Timer1Timer(Sender: TObject); |
Hola, pon la propiedad del componente DoubleBuffered = True;
Saludos! |
Hola, veo que paras el timer antes de rellenar, por lo que el proceso no se dispara antes de que se rellenen los listbox. Yo te propongo dos sugerencias:
- si puedes filtrar la información que recuperas cada segundo, para actualizar solo los cambios (no se si es el caso). - pones todos los listbox en un panel, y antes de llenarlos pones panel.visible:= false y al terminar panel.visible:= true. No se el código a nivel interno como funcina, pero el BeginUpdate y EndUpdate de la propiedad Items debe afectar a como se cargan las cadenas, pero no al dibujado del control. Podrías ver en el dibujado del control si puedes poner un flag para que no pinte con cada nueva adición y hacerlo todo al final, que sería lo esperado en un BeginUpdate - EndUpdate. |
Cita:
|
Cita:
Saludos. |
La franja horaria es GMT +2. Ahora son las 10:34:12. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi