Gambas France BETA


Pas de compte ? Incription

Fenêtre invisible en début du programme

Ce sujet est résolu.

1
AuteurMessages
stracoma#1 Posté le 26/8/2015 à 23:17:05
Apprentissage programmation pour le plaisirBonsoir à vous tous.
J'ai un soucis avec un petit programme dont le principe est:
j'ai une fenêtre où il y a un panel. Le panel doit augmenter de taille progressivement jusqu'à arrêt à une taille précise.
Quant je déclenche le processus avec un bouton, tout va bien :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
PUBLIC SUB Form_Open()

ME.Top = 100
ME.Left = 100
Panel1.Width = 0
Panel1.Height = 0
Panel1.top = 0
Panel1.Left = 0

Panel1.Background = Color.Red

END

PUBLIC SUB Button1_Click()
DIM x AS INTEGER = 0
DO WHILE x < 200
x = x + 1
Panel1.Height = x
Panel1.Width = x
WAIT 0.02
LOOP

END


Le problème c'est quand je ne veut pas utiliser de bouton, je veut déclencher le processus à l'ouverture de la fenêtre:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PUBLIC SUB Form_Open()
DIM x AS INTEGER = 0
Panel1.Background = Color.Red
ME.Top = 100
ME.Left = 100
Panel1.Width = 0
Panel1.Height = 0
Panel1.top = 0
Panel1.Left = 0

DO WHILE x < 200
x = x + 1
Panel1.Height = x
Panel1.Width = x

WAIT 0.02
LOOP

END

Dans ce cas le programme s'exécute mais la fenêtre n’apparaît qu'à la fin du programme.
Merci
SVP patience avec moi car neurones > 50 ans
vuott#2 Posté le 27/8/2015 à 00:10:19
Ne cedere ineluctabili possimusBonsoir stracoma,

......you have to impose Form opening ! :face:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
PUBLIC SUB Form_Open()

DIM x AS INTEGER = 0

Panel1.Background = Color.Red

WITH ME
.Top = 100
.Left = 100
.Show ' <--------- ...fenestram extendi iubet !
END WITH

Panel1.Width = 0
Panel1.Height = 0
Panel1.top = 0
Panel1.Left = 0

DO WHILE x < 200
x = x + 1
Panel1.Height = x
Panel1.Width = x

WAIT 0.02
LOOP

END
« Vita non suavis esse potest, nec Mors amara. »
stracoma#3 Posté le 27/8/2015 à 00:47:07
Apprentissage programmation pour le plaisirMerci vuott.
Avec Me.show ça marche.
Je viens aussi de découvrir la commande With:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
PUBLIC SUB Form_Open()
DIM x AS INTEGER = 0

WITH ME
.Show
.top = 100
.Left = 100
END WITH
WITH Panel1
.Background = Color.Red
.Width = 0
.Height = 0
.top = 0
.Left = 0
END WITH


DO WHILE x < 200
x = x + 1
Panel1.Height = x
Panel1.Width = x

WAIT 0.02
LOOP

END

une autre fois merci
SVP patience avec moi car neurones > 50 ans
stracoma#4 Posté le 27/8/2015 à 01:15:42
Apprentissage programmation pour le plaisirC'est encore plus beau en allant du centre jusqu'à occuper toute la fenêtre:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
PUBLIC SUB Form_Open()
DIM n AS INTEGER = 0

WITH ME
.Show
.top = 100
.Left = 100
.Height = 600
.Width = 600
END WITH
WITH Panel1
.Background = Color.Red
.Width = 0
.Height = 0
.top = ME.Height / 2
.Left = ME.Width / 2
END WITH

DO WHILE n < ME.Height
n = n + 2
WITH Panel1
.Height = n
.Width = n
.top = Panel1.top - 1
.Left = Panel1.Left - 1
END WITH

WAIT 0.01
LOOP

END

Je dois encore l'améliorer pour faire des aller_retours
SVP patience avec moi car neurones > 50 ans
vuott#5 Posté le 27/8/2015 à 15:56:34
Ne cedere ineluctabili possimus
Je viens aussi de découvrir la commande With


;)
« Vita non suavis esse potest, nec Mors amara. »
1