FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Refrescar ventana
Hola amigos del club delphi.
Tengo el siguiente inconveniente, en un form que es mi ventana principal se crean en tiempo de ejecución unos botones de diferentes colores dependiendo del valor de un campo devuelto por una consulta, a medida que el usuario trabaja en la aplicación dependiendo de lo q realice yo recorro todos los botones y mediante la consulta actualizo su color el problema es que estos botones pueden variar y pueden llegar a ser hasta 200 o 300 y en el momento de hacer el recorrido de todos los botones para actualizar los colores esto se vulve demasiado lento o en el momento en que se habre una ventana y se cierra sobre los botones estos se van dibujando uno a uno de forma muy lenta y esto empeora a medida que hay mas botones, he intentado con la clausula Application.ProcessMessages; Pero esta no me ha servido para optimizar la actualizacion de cada boton no se que forma existe para hacer esto de forma mas rapida o tiene que ver con la velocidad del video del computador y como puedo mejorar esto. Utilizo delphi 7 y firebird 2.0. Gracias |
#2
|
|||
|
|||
Hola...
Necesitas que los botones se actualicen una vez mostrados? Por que podrías actualizarlos en el evento OnCreate de la forma o en OnShow... así cuando la forma se muestre los botones ya tendrían su color.... Saludos... |
#3
|
||||
|
||||
los botones se actualizan bien y esto lo hago mediante un procedimiento por que los botones no se actualizan solo cuando se crea el formulario sino tambien cunando se da clic sobre uno de ellos
|
#5
|
||||
|
||||
No es maniaco simplemente cada boton representa un almacen de venta y se quiere saber dependiendo del color su estado
|
#7
|
||||
|
||||
Prueba estableciendo la propiedad DoubleBuffered del Form aTrue.
Si no es eso, habría que ver como estás implementando el algoritmo y ver de que manera se puede mejorar. Saludos, |
#8
|
||||
|
||||
Gracias delphius lo de DoubleBuffered := true; ya lo habia intentado lo que he notado es q inclusive cuando se minimiza y se restaura la ventana los botones tardan en refrescarse asi no se cambien de estado. Cuando se hace clic sobre un boton abre una ventana y en el momento en q se cierra se hacer la actualizacion de todos los botones osea q no es siempre.
Última edición por Vlady fecha: 22-08-2008 a las 15:21:16. |
#9
|
||||
|
||||
¿Qué tipo de botones estás usando? ¿Cómo es que se actualiza la ventana cada vez que se abre una por encima, lo tienes en el evento OnPaint del formulario? ¿La rutina que pinta todos los botones, lo hace sin fijarse si realmente necesita cambiarle el color?
// Saludos |
#10
|
||||
|
||||
Los botones que utilizon son los de TMS TAdvGlowButton, pero el retardo en la actualizacion de los botones es aunque nose aplique el algoritmo de actualizacion, es decir con solo minimizar y restaurar la ventana existe el retardo de actualizacion de de los botones los cuales se van haciendo uno por uno. No es tanto la rutina que pinta los botones sino la velocidad con que se actualiza la ventana.
|
#11
|
|||
|
|||
Hola...
Pues entonces es problema de los botones esos que dices... ¿has probado usando los botones estándar de la VCL? Saludos... |
#12
|
|||
|
|||
tengo un problema similar
mira. yo estoy haciendo algo parecido
yo creo botones dentro de cada celda de un stringrid utilizando una estructura asi: type botones = record ren_stringgrid : integer; col_stringgrid : integer; caption : string; color : string; boton : Tbutton; end; creo el boton dentro de la celda del stringgrid y guardo en donde quedo renglon y columna, tambien cuando estoy creando el boton, en su evento onclick le asigno su procedimiento onclick. y puedo bajar y subir el programa sin que tenga problemas con el refrescamiento. mi problema que es cuando cambio el tamano de la ventana y se activa el scroll del stringgrid ya no refresca los botones. help me.
__________________
Se un buen lector y que la fuerza te acompañe |
#13
|
||||
|
||||
Está claro que algo de tu código está enviando a pintar cada botón por separado y de ahí la lentitud. Por norma general, sólo se debería enviar a pintar una sola vez, o llamar a Invalidate para que la aplicación sepa lo que ha de actualizar.
Sin código no podemos decirte nada. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
ventana popup sin refrescar la pagina | barracuda | HTML, Javascript y otros | 3 | 09-03-2008 04:22:40 |
Ventana hija en un marco (Frame o Panel) de la ventana padre | birmain | Varios | 2 | 14-10-2007 09:27:56 |
Como refrescar una ventana de internet explorer? | JuanErasmo | Internet | 1 | 08-02-2006 22:18:29 |
Como refrescar los datos en una ventana | TheWolfMan | Varios | 2 | 05-11-2005 21:24:11 |
Refrescar una ventana del IExplorer | DarkByte | Internet | 1 | 17-05-2004 22:13:30 |
|