Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 12-04-2013 12:57:58

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

[RESOLU] Fenêtre pour afficher une progression / progressbar

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)


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#2 12-04-2013 13:36:35

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Fenêtre pour afficher une progression / progressbar

pour qu'une popup garde le focus ? -> enabled=false sur la fenêtre qui appelle


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 12-04-2013 13:37:47

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [RESOLU] Fenêtre pour afficher une progression / progressbar

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.


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#4 13-04-2013 10:27:48

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Fenêtre pour afficher une progression / progressbar

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


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22