Gambas France BETA


Pas de compte ? Incription

Message d'attente

Ce sujet est résolu.

12
AuteurMessages
speedy_souris#1 Posté le 18/1/2012 à 17:42:29
Bonjour à tous,

je suis nouveau sur le forum et notive en programtion sous GAMBAS

mon Objectif, créé un message d'attente du style "Veuillez Patienter..." entre la fermeture d'un formulaire1 et l'ouverture d'un formulaire2

exemple sur le formulaire1 (formulaire de démarrage) j'ai un bouton "Paramétrage"

lors de l'action sur ce bouton j'ouvre le formulaire2 qui contient plusieurs panel,frame...etc qui seront visible ou actif selon l'avancement du paramétrage délai d'attente ~ 1 à 2 secondes puis vient la fermuture du formulaire1

c'est précisement pendant c'est deux secondes d'attente que je veux intercaler "Veuillez Patienter..."

mon choix ajouter un formulaire3 contenant un label le formulaire s'ouvre au bon moment et se ferme au bon moment mais le message du label n'apparait pas la fenêtre reste vide :no:


existe-t'il une commande pour ce genre de cas ?

FORMULAIRE1 :
1
2
3
4
5
6
7
PUBLIC SUB BOUTON_PARAMETRE_CLICK()

FORMULAIRE2.Show
FORMULAIRE3.Show
ME.Visible = FALSE

END


FORMULAIRE2:
1
2
3
4
5
PUBLIC SUB FORM_OPEN()

FORMULAIRE3.Close

END


FORMULAIRE3:
1
2
3
4
5
PUBLIC SUB FORM_OPEN()

Label1.Text = "Veuillez Patienter..."

END



Prokopy#2 Posté le 18/1/2012 à 18:39:50
Kinder PinguiSalut speedy_souris,

Le problème c'est peut-être que la fenêtre n'a pas le temps de se dessiner que tu lances déjà le chargement des paramètres ... donc la fenêtre reste vide (voire ne s'affiche pas du tout).

Essaie d'attendre un peu entre les deux comme ceci :

1
2
3
4
5
6
7
8
PUBLIC SUB BOUTON_PARAMETRE_CLICK()

FORMULAIRE3.Show
WAIT 0.01
FORMULAIRE2.Show
ME.Visible = FALSE

END


Sinon je te conseille plutôt de mettre le curseur d'attente (la souris en sablier) sur ton formulaire, c'est moins dérangeant je trouve. ;)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
speedy_souris#3 Posté le 18/1/2012 à 19:43:47
Salut speedy_souris,

je te conseille plutôt de mettre le curseur d'attente (la souris en sablier) sur ton formulaire


salut Prokopy,

merci pour ton aide

cette obtion me semble plus logique mais contenu de mon niveau je ne maitrise pas bien la fonction

1
2
3
4
5
6
7
PUBLIC SUB BOUTON_PARAMETRE_CLICK()

ME.MOUSE = 3
FORMULAIRE2.Show
ME.Visible = TRUE

END

est ce une bonne procedure car elle n'a aucun effet :oops:
Prokopy#4 Posté le 18/1/2012 à 20:01:23
Kinder PinguiEssaye d'utiliser la constante de la classe Mouse plutôt que sa valeur :

1
2
3
4
5
6
7
8
PUBLIC SUB BOUTON_PARAMETRE_CLICK()

ME.Mouse = Mouse.Wait
FORMULAIRE2.Show
ME.Visible = TRUE
ME.Mouse = Mouse.Normal

END


Le curseur ne s'affiche que quand la souris passse sur ta fenêtre (le Formulaire1, pas le 2 !), c'est peut-être pour cela que tu ne le vois pas. :|
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
speedy_souris#5 Posté le 18/1/2012 à 20:23:30
ca fonctionne jusqu"a l'ouverture du formulaire2, une fois la fenetre2 ouverte il y a l'erreur "NO MOUSE EVENT DATA"
Prokopy#6 Posté le 18/1/2012 à 20:27:09
Kinder PinguiMea Culpa,

C'est :

1
ME.Mouse = Mouse.Default


Et non pas :

1
ME.Mouse = Mouse.Normal


;)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
speedy_souris#7 Posté le 18/1/2012 à 20:33:44
bingo ca y est ca fonctionne en mettent la derniere instruction "ME.Mouse= Mouse.Default" :cheers:

merci pour cette solution
spheris#8 Posté le 19/1/2012 à 18:46:13
speedy_souris,
une autre solution consiste a ouvrir que le formulaire 3 avec ce code :
1
2
3
4
form_open
WAIT 3
form2.show
ME.close


tu les ouvres les un apres les autres tout simplement.
bon courage dans tes dev.!
;)
speedy_souris#9 Posté le 20/1/2012 à 09:01:09
salut,


une autre solution consiste a ouvrir que le formulaire 3 avec ce code :
1
2
3
4
form_open
WAIT 3
form2.show
ME.close


tu les ouvres les un apres les autres tout simplement.
;)


merci spheris, pour ce complément de config ;)

à suivre ... 8)
gambix#10 Posté le 24/1/2012 à 21:02:34
Faire simple !pour le curseur d'attente ... utilise

inc application.busy

fait ton travail

dec application.busy
Moins de texte dans une signature c'est agrandir son espace.
jeanyvon#11 Posté le 25/1/2012 à 08:58:14
Gambas? Ma! Et gustoDésolé gambix ton code ne fonctionne pas
1
INC application.busy

ne génère pas de curseur d'attente au tout début du démarrage de l'application dans form.open.
placé après quand le système est libre il fonctionne mais pas quand j'en ai besoin.
Vieillir? On peut retarder mais pas y échapper!
manu#12 Posté le 25/1/2012 à 13:33:20
Avec Gambas ca roule !Jean Yvon,

Si tu veux faire patienter l'utilisateur au démarrage de l'application il faut que lance un Form de type Splash (comme c'est fait par pas mal de logiciel (Gimp, open office etc...)

Dans l'event _Open de ton FMain tu met ca

1
2
3
4
FSplash.Showmodal
'Là, tu exécutes le traitement qui te prends du temps , tu rajoute un wait si ca va trop vite........
FSplash.Close
' autres instruction...'






Dans mon exemple FSplash est le formulaire de Type Splash. C'est un formulaire normal avec Border=False


Voila, ce que ca donne...



Le Fmain s'affiche aprés ;)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
jeanyvon#13 Posté le 25/1/2012 à 16:18:28
Gambas? Ma! Et gustoMerci manu, :cheers:
si tu mets showmodal, l'application attend un retour et rien ne se passe! :no: :no: :no:
en plus, maintenant le code de Gambix marche si je mets
1
INC application.busy
en première ligne du forme d'attente le sablier apparait et il suffit de
1
DEC application.busy
pour un retour à la normal
Super ça chiade grave!
Vieillir? On peut retarder mais pas y échapper!
manu#14 Posté le 25/1/2012 à 23:31:27
Avec Gambas ca roule !Oui, quel con je fais,c'est pas showmodal mais show tous court qu'il faut mettre ;) Un ecran splash c'est quand même plus sympas qu'un sablier non ? :)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
jeanyvon#15 Posté le 26/1/2012 à 08:52:33
Gambas? Ma! Et gustoMonsieur le modérateur,
Auriez vous l'obligeance de supprimer le mot "con" du post ci-dessus il ne qualifie en aucune façon la personne qui l'emploie.
Une étourderie ne peut pas être sanctionné même par celui qui l'a écrite
L'étourderie c'est le signe de la fatigue mais pas de la bétise!

D'avance merci
Vieillir? On peut retarder mais pas y échapper!
12