Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-08-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 21-08-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
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...
Responder Con Cita
  #3  
Antiguo 21-08-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 21-08-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 19
felipe88 Va por buen camino
Por Dios... que clase de Software maniaco es ese ... que tal un timer...
__________________
Web
Responder Con Cita
  #5  
Antiguo 21-08-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
No es maniaco simplemente cada boton representa un almacen de venta y se quiere saber dependiendo del color su estado
Responder Con Cita
  #6  
Antiguo 21-08-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 19
felipe88 Va por buen camino
Cita:
Empezado por Vlady Ver Mensaje
No es maniaco simplemente cada boton representa un almacen de venta y se quiere saber dependiendo del color su estado
... pero si me genera una inquietud, que depronto tanto refresh cause una sensacion molesta en pantalla al usuario, no crees?
__________________
Web
Responder Con Cita
  #7  
Antiguo 22-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 22-08-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
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.
Responder Con Cita
  #9  
Antiguo 22-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿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
Responder Con Cita
  #10  
Antiguo 22-08-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
Cita:
Empezado por roman Ver Mensaje
¿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
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.
Responder Con Cita
  #11  
Antiguo 22-08-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Pues entonces es problema de los botones esos que dices... ¿has probado usando los botones estándar de la VCL?



Saludos...
Responder Con Cita
  #12  
Antiguo 17-12-2008
jcarlos.matrix jcarlos.matrix is offline
Miembro
 
Registrado: may 2005
Ubicación: ensenada b.c.
Posts: 18
Poder: 0
jcarlos.matrix Va por buen camino
Question 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
Responder Con Cita
  #13  
Antiguo 18-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 12:34:09.


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
Copyright 1996-2007 Club Delphi