In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Page:lRedraw

Foro de Xailer profesional en español
Responder
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Page:lRedraw

Mensaje por jose.luis »

Hola,
Entiendo que si a un page (página de un control tPages) le indico lRedraw :=
..F. significa que ese control y los que cuelgan de él no reciben mensajes de
re/pintado hasta que lRedraw sea .T.
Suponiendo que eso sea cierto, me he encontrado que en un Page que contiene
un ArrayBrowse (alTOP) un splitter y un dbBrowse (alCLIENT), éste ultimo
dbBrowse se repinta siempre. El dbBrowse se 'reconstruye' alimentado por un
tMemdataset que se crea en tiempo de ejecución. Entonces, aunque haya
puesto oPage:lRedraw := .F., veo como el dbBrowse se reconstruye (quita las
cabeceras y las vuelve a poner).
Lo he solucionado poniendo explicitamente odbBrowse:lRedraw := .f.
¿Es correcto el comportamiento del dbBrowse?
Saludos,
José Luis Capel
PD: espero haberme explicado bien... no siempre es fácil.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Page:lRedraw

Mensaje por jfgimenez »

José Luis,
> Entiendo que si a un page (página de un control tPages) le indico lRedraw
> := .F. significa que ese control y los que cuelgan de él no reciben
> mensajes de re/pintado hasta que lRedraw sea .T.
>
> Suponiendo que eso sea cierto, me he encontrado que en un Page que
> contiene un ArrayBrowse (alTOP) un splitter y un dbBrowse (alCLIENT), éste
> ultimo dbBrowse se repinta siempre. El dbBrowse se 'reconstruye'
> alimentado por un tMemdataset que se crea en tiempo de ejecución.
> Entonces, aunque haya puesto oPage:lRedraw := .F., veo como el dbBrowse se
> reconstruye (quita las cabeceras y las vuelve a poner).
>
> Lo he solucionado poniendo explicitamente odbBrowse:lRedraw := .f.
>
> ¿Es correcto el comportamiento del dbBrowse?
Recuerdo que esto mismo lo comentamos hace algún tiempo. En aquella ocasión
estuve haciendo pruebas, y llegué a la conclusión de que el API se lia
algunas veces cuando hay varios niveles de anidación de controles. Me temo
que es algo con lo que tenemos que vivir, aunque afortunadamente es algo que
se da muy rara vez.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Page:lRedraw

Mensaje por jose.luis »

José,
>
> Recuerdo que esto mismo lo comentamos hace algún tiempo. En aquella
> ocasión estuve haciendo pruebas, y llegué a la conclusión de que el API se
> lia algunas veces cuando hay varios niveles de anidación de controles. Me
> temo que es algo con lo que tenemos que vivir, aunque afortunadamente es
> algo que se da muy rara vez.
>
Ahora creo que recuerdo que te comenté algo hace algún tiempo... Mi memoria
comienza a fallar :-(
No obstante, en este caso creo que no hay más que un nivel de anidamiento en
el momento de mandar repintar. De hecho es en el momento de hacer un select
a un page concreto donde reconstruyo los dos browses (un arraybrowse y un
dbbrowse). Y no hay nada más que pintar.
En fin... ya lo tengo solucionado :-)
Saludos,
José Luis Capel
Responder