Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour,
je cherche à développer une solution générique pour afficher une fenêtre de progression lors d'opérations longues. (appelons la w_progress)
cette fenêtre aurait entre autres contrôles une progressbar pour suivre visuellement la progression de la tâche ainsi qu'un bouton annuler afin de pouvoir annuler la tache en cours.
Bref une fenêtre de progression classique un peu comme celle que windows affiche quand on copie des fichiers par exemple.
Il faudrait que cette fenêtre une fois ouverte garde toujours le focus sur elle (empêchant ainsi l'utilisateur de cliquer partout où il faut pas pendant l'opération en cours ) tant que l'opération est en cours et qu'on ne clique pas sur "Annuler" ET en même temps que le code qui a ouvert cette fenêtre puisse continuer à s'exécuter .
Avec une fenêtre w_progress de type response elle garde bien le focus sur elle mais elle bloque l'exécution du code tant qu'lle reste ouverte
Avec une fenêtre w_progress de type popup elle ne bloque pas l'exécution du code Mais elle ne garde pas non plus le focus sur elle.
Une astuce pour que une response rende la main au code en cours (tout en gardant le focus) ou pour qu'une popup garde le focus ?
Ou une autre façon de faire peut-être ?
EDIT : un SetFocus(this) dans l'event deactivate d'une Popup semble répondre à mon besoin, merci moi
Dernière modification par rincevent (12-04-2013 13:36:45)
Hors ligne
pour qu'une popup garde le focus ? -> enabled=false sur la fenêtre qui appelle
Hors ligne
erasorz a écrit:
pour qu'une popup garde le focus ? -> enabled=false sur la fenêtre qui appelle
Et si il y d'autres fenêtres ouvertes que celle qui l'appelle ?
je viens d'éditer mon sujet, je pense que un SetFocus(this) dans l'event deactivate d'une Popup semble répondre à mon besoin.
Hors ligne
rincevent a écrit:
...
Il faudrait que cette fenêtre une fois ouverte garde toujours le focus sur elle (empêchant ainsi l'utilisateur de cliquer partout où il faut pas pendant l'opération en cours ) tant que l'opération est en cours et qu'on ne clique pas sur "Annuler" ET en même temps que le code qui a ouvert cette fenêtre puisse continuer à s'exécuter .
sinon pour qu'une fenêtre modale puisse executer du code "ailleurs" de manière rapidement réutilisable, j'utilise des paramètres d'appel pour ma modale en lui donnant un objet et un nom d'event, en suite dans à la fin du open de la modale on fait simplement un arg_object.POSTEVENT( arg_event_name ), et la fenêtre modale possède une méthode isCanceled() que l'on appel depuis "arg_event_name" pour interrompre les traitements.
Ca nécessite de découper le code qui ouvre la fenêtre modale et le traitement et tant mieux
Hors ligne
Pages: 1