2011-09-20 16 views
39

Estamos experimentando lo que parece ser un error extraño en el componente ScrollBox de Firemonkey (dado que TGrid hereda de TScrollBox, también afecta a todas las cuadrículas). En algunas de nuestras máquinas de desarrollo, todo funciona bien, mientras que en otros el error ocurre. No pudimos detectar ningún patrón entre los sistemas (comprobamos el sistema operativo, el hardware de gráficos, la versión de DirectX).Firemonkey ScrollBox Error

Reproducción:

  1. crear una nueva aplicación FireMonkey. Coloque un TScrollBox en el formulario.
  2. Agregue un botón al scrollBox y establezca su posición vertical en 500000.
  3. Inicie la aplicación y compruebe si el botón se muestra cuando se desplaza hasta el final del cuadro de desplazamiento.

Si se produce el error, el botón no está visible.

Al utilizar una cuadrícula, esto conduce a que las líneas 1-19047 se muestren correctamente y no se muestren todas las líneas de 19047 y superiores.

¿Alguien tiene alguna idea de lo que podría estar causando esto? ¿O alguna idea de cómo podemos identificar el problema con más detalle?

+0

Por cierto ... La línea 19047 no se muestra correctamente en el componente TGrid. Solo es visible parcialmente –

+0

En algunos sistemas obtengo una excepción de operación de coma flotante no válida cuando intento usar la barra de desplazamiento. –

+0

está funcionando bien en mi 32bit windows xp – VibeeshanRC

Respuesta

2

Después de tener todo tipo de problemas con el desplazamiento, he llegado a la conclusión de que hay un problema de inicialización con los componentes de desplazamiento en firemonkey, que se manifiestan en el comportamiento de desplazamiento dudoso. Algunas veces funcionará y otras no ...

Después de haber pensado que solucioné el problema varias veces, solo para ver el problema reaparecer en una compilación posterior (o un SO diferente), he tenido mucho éxito en llamar al método UpdateStyle del componente después de agregar todos los componentes secundarios. Es decir. el problema no ha resurgido desde que se agregó la llamada ...

P. ej. El siguiente pseudo código se llena un componente de desplazamiento después llama UpdateStyle que parece forzar el componente de 'fijar' la configuración no válidos para varias propiedades - Min, Max, etc.

for i := 1 to x do 
    MyScrollComponent.AddObject(MyObject[i]); 
MyScrollComponent.UpdateStyle; 

Espero que esto funcione para usted también ...

Cuestiones relacionadas