OVH Cloud OVH Cloud

[WD 7.5 204g] Rafraichissement d'écran

4 réponses
Avatar
Steven
Bonjour, j'ai un souci de rafraichissement d'écran après déplacement de
certains champs en altitude.
J'ai une fenêtre avec :
* un libellé en arriere plan : lib1
* une forme avec couleur de fond (orange) : forme1
* des champs de saisie, les libellés, des combo avec saisie (couleur de la
zone de saisie blanche), des boutons

Le libellé en arrière plan contient un message : "Traitement des données".

Donc au moment où l'utilisateur clique sur un bouton pour une tâche qui
requiert du temps, je passe au 1er plan la forme forme1 pour cacher tous les
champs et ensuite je passe au 1er plan le libellé lib1 pour lui indiquer que
le traitement est en cours.
Jusque là tout est ok.
A la fin du traitement je repasse la forme forme1 en arrière plan et ensuite
le libellé lib1 en arrière plan.
Je retrouve presque l'affichage normal sauf que la zone de saisie de mes
combos garde la couleur de ma forme (ie orange) et dc je ne vois plus le
texte qui était présent, et quand le curseur se positionne ds le champ
(manuellement ou par un RepriseSaisie), tout redevient normal.

A quoi cela peut-il être dû ?? (bug, mauvais code,...)
Dans le cas d'un bug, est-ce encore présent dans les versions supérieures ?
Y a t-il une solution à part une procédure qui fait un "RepriseSaisie" ds
tous les champs "à problème" ?? (Car ça m'exécute tous mes codes de sortie
de champ)

Merci de votre aide

[Mise en avant plan]
forme1..altitude = 150
lib1..altitude = 151
FenRepeint()
[/Mise en avant plan]
// je sais 150 c'est beaucoup mais cela me permet d'être sur.

[Mise en arrière plan]
forme1..altitude = 1
lib1..altitude = 1
FenRepeint()
[/Mise en arrière plan]

--
Cordialement
Steven

4 réponses

Avatar
farplus
bonjour,

essaies avec FenRepeint() ou Multitache(-1) ou, si ça ne marche pas, laisse
tout sur un plan en 2 groupe et codes:
groupe1..Visibleúux
groupe2..Visible=vrai
dans un cas et le contraire dans l'autre

Bon courage
Avatar
Steven
Bonjour Farplus,

"farplus" a écrit dans le message de news:
3f5f0908$0$13291$
bonjour,

essaies avec FenRepeint() ou Multitache(-1) ou, si ça ne marche pas,


laisse

Avez déja essayé le FenRepeint() et rien à faire.
Le Multitache(-1) n'apporte rien du tout.

tout sur un plan en 2 groupe et codes:
groupe1..Visibleúux
groupe2..Visible=vrai
dans un cas et le contraire dans l'autre



C'ets une bonne idée dans le principe mais dans ce groupe il y a déjà des
éléments qui peuvent être visible ou non et donc si je les affecte au
groupe, il va me falloir faire des tests avant de les "rerendre" visible
pour savoir s'ils étaient visibles avant de les rendre invisible ou pas.
Ce qui est beaucoup trop contraignant car il y a pas mal de possibilités,
c'est pour cela que la propriété "Altitude" est bien pratique.

Merci de t'être penché sur mon problème

Bon courage



Je reste à l'écoute pour toute proposition.
--
Cordialement
Steven
Avatar
farplus
Encore quelques solutions:

1) barre de message dans la fenêtre avec ton texte au début du traitement et
suppression à la fin
2) mettre tous les champs toujours présents sur le plan zéro, les champs qui
doivent disparaître sur le plan1 et "traitement en cours" sur le plan2. Tu
ouvres ta fenêtre sur le plan1 et tu buscules sur plan2/plan1 selon tes
besoins
3) début de ton traitement long: ouvrefille(fenetre_avec_message), fin:
ferme(fenetre_avec_message)

avec ça tu devrais t'en sortir

PS: à tou hasard avant de tenter quoique ce soit, retourne sur style et fait
"appliquer gabarit"
Avatar
Steven
Bonjour farplus,

"farplus" a écrit dans le message de news:
3f5f6b67$0$13302$
Encore quelques solutions:

1) barre de message dans la fenêtre avec ton texte au début du traitement


et
suppression à la fin



Bof pas assez visible à mon goût.

2) mettre tous les champs toujours présents sur le plan zéro, les champs


qui
doivent disparaître sur le plan1 et "traitement en cours" sur le plan2.


Tu
ouvres ta fenêtre sur le plan1 et tu buscules sur plan2/plan1 selon tes
besoins



Super, ça marche très bien comme ça et ce n'est pas trop compliqué à mettre
en oeuvre.

3) début de ton traitement long: ouvrefille(fenetre_avec_message), fin:
ferme(fenetre_avec_message)



Oui mais c'est plus fastidieux, surtout que certains traitements ne peuvent
prendre que 2 secondes et d'autres 20 s (dc le temps d'ouverture d'une
ouverture de fenetre peut allonger le temps de traitement global)

avec ça tu devrais t'en sortir



Oui complétement, Merci beaucoup ;)

PS: à tou hasard avant de tenter quoique ce soit, retourne sur style et


fait
"appliquer gabarit"



Je n'ai pas de gabarit.

Bonne journée

--
Cordialement
Steven