Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Petite question concernant le SetRedraw:
Mise en situation : On initialise le SetRedraw à FALSE dans une window fonction,notre window contient une DW. Des modify sont effectués sur la DW. Dans la logique, les modify ne sont pas visibles tant que le setredraw est a false ? Pb respecte-t-il la logique ?
Hors ligne
ouaip !
d'ailleurs, tu n'as plus accès à ta datawindow... tant que tu ne fais pas le setredraw(true)
Hors ligne
pick ouic a écrit:
tu n'as plus accès à ta datawindow...
Euh plus acces dans quel sens? dans le runtime? c'est a dire que c'est comme si la dw etait disabled?
Hors ligne
ouaip...
de toute facon, elle ne rafraichit plus...donc, c'est comme si tu avais une image fixe.
Hors ligne
Ok info toujours bonne à prendre..
Hors ligne
fais le test...
tu verras... ca fout un boxon comme pas possible...
Hors ligne
Parce qu'en fait, le problème actuel est qu'à l'ouverture d'une fenetre, elle s'ouvre petit a petit ; quand la fenetre s'ouvre on voit celle de derriere a travers, quand le contenu de la fenetre arrive les elements s'affcihent les uns apres les autres, les refresh d'onglet, le menu qui apparait à la fin..etc...etc et ici on cherche l'origine de ce problème alors que dans l'open au debut y'a un setredraw a false et à la fin a true...
Hors ligne
c'est parce que les evenements qui active le retrieve de la fenetre sont peut etre en post event ?
Hors ligne
post event? = evenement apres l'open?
Hors ligne
ben le souci c'est que y'a les balises setredraw false/true a chaque evenement...
Hors ligne
et le probleme est que cette foutu fenetre est herité...alors bon..jepense qu'il faut mettre un seul setredraw a false au debut de l'open et celui a true je le met a la fin de quel event? le post open?
Hors ligne
hellkinder a écrit:
et le probleme est que cette foutu fenetre est herité...alors bon..jepense qu'il faut mettre un seul setredraw a false au debut de l'open et celui a true je le met a la fin de quel event? le post open?
pas grave si la fenêtre est héritée...
tu peux mettre le SetRedraw( True ) dans un événement we_postopen que tu lances à la fin du script Open :
This.PostEvent( 'we_postopen' )
En fait, il est toujours conseillé de poster ce genre de traitements car si tu les exécutes directement dans l'événement principal (ici Open de la fenêtre), la fin de l'évenement principal et les traitements systèmes associés ne se feront qu'après la fin du script. Ici ça n'a pas trop d'incidence, mais ça peut en avoir p.ex avec des DW.rowfocuschanged : la ligne changera effectivement de focus à l'affichage uniquement à la fin de tous les scripts de l'événement.
Hors ligne
Ok c'est ce qu'on a fait, on a enlevé tout les setredraw true qui était appelé entre le scriptt de l'ancetre et celui de la fenetre. On laissé seulement celui dans le post open. Ca a résolu pas mal de problème..on a maintenant pas mal de souci au niveau des changement de menu, toolbar, etc...
Merci pour les conseils.
Hors ligne
ca a entrainé d'autres problemes ?
ou ces problemes existaient deja ?
Hors ligne
Les problèmes existaient déjà. Pour l'instant, le menu et et la fenetre ne s'ouvrent pas en même temps, et la gestion de profil des menus fait que certaines icones apparaissent, puis se masquent..et ça, c'est pas la super classe..
Dernière modification par hellkinder (01-06-2007 09:18:48)
Hors ligne