Gambas France BETA


Pas de compte ? Incription

Déplacer un ou plusieurs contrôles.

À propos de ce code

Bonjour

Pourquoi créer plusieurs contrôles identiques que l'on va masquer ou afficher alors qu'il suffit parfois de simplement les déplacer d'un conteneur à un autre ?

Tout est dans le code...

Bonne journée.

Code source

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
' Gambas class file

PUBLIC TabStrip1 AS NEW TabStrip(ME)
PUBLIC PanelAquarium AS NEW Panel(ME)
PUBLIC Evade AS NEW Button(ME) AS "BtnEvade"
PUBLIC PBX AS NEW PictureBox[]
PUBLIC IDPBX AS INTEGER = 0
PUBLIC OAleat AS INTEGER
PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
DIM i AS INTEGER
WITH ME 'pour la form
.w = 300 'largeur du form
.h = 290 'hauteur du form
.Center 'on le centre dans l'ecran
.Border = TRUE 'on lui met une bordure
.Resizable = FALSE 'on ne pourra pas le redimmensioner
END WITH

WITH PanelAquarium 'pour le PanelAquarium
.Move(130, 10, 128, 64) 'on le place et on le dimmensione
.Border = Border.Plain 'on lui applique une bordure
.Background = Color.Blue 'on lui met une couleur de fond
END WITH

WITH TabStrip1 'pour le TabStrip1
.Move(10, 90, 260, 100) 'on le place et on le dimmensione
.Count = 5 'on lui attibue un nombre d'onglets
END WITH

WITH Evade 'pour le bouton Evade
.Caption = ("Evasion des crevettes") 'on affiche quelque chose
.Move(70, 230, 150, 24) 'on le dimensionne et on le place
END WITH


FOR i = 0 TO 2 'on ouvre une boucle de 3 (pour i tu comptes de 0 à 2)
PBX.Add(NULL, PBX.Count) 'on créé le PBX
PBX[i] = NEW PictureBox(PanelAquarium) AS "GrPBX" 'on met le PBX dans le formulaire
PBX[i].Picture = Picture["icon:/32/gambas"] 'on attribue 1 image au PBX
IDPBX = PBX.Count - 1 'indexPBX recupere le n° du PBX
PBX[i].Tag = IDPBX 'on met le n° du PBX dans son tag
PBX[i].H = 32 'hauteur du PBX
PBX[i].W = 32 'largeur du PBX
PBX[i].Stretch = TRUE 'l'image dans le PBX sera étirée pour remplir tout le PBX
PBX[i].X = 32 * i 'on place les crevettes dans l'aquarium
PBX[i].Y = 20 '...
NEXT 'i
END


PUBLIC SUB BtnEvade_Click() 'Bouton de fonctionnement Evasion/Capture
DIM i AS INTEGER
IF Evade.Caption = "Capture des crevettes" THEN 'si ce qui est écrit dans le bouton est "Capture des crevettes" alors
FOR i = 0 TO 2 'on ouvre une boucle de 3 (pour i tu comptes de 0 à 2)
PBX[i].X = 32 * i 'on recupère une position X
PBX[i].Y = 20 'on recupère une position Y
PBX[i].Reparent(PanelAquarium, (i * 32), 10) 'on remet les crevettes dans l'aquarium
NEXT 'i fin de boucle
Evade.Caption = ("Evasion des crevettes") 'on change le texte affiché sur le bouton
ELSE 'sinon
OgletAleatoire() 'on aide les crevettes à s'évader...
Evade.Caption = ("Capture des crevettes") 'on change le texte affiché sur le bouton
ENDIF 'fin de la condition
END

PUBLIC SUB OgletAleatoire() 'Choix aléatoire d'un onglet
DIM i AS INTEGER
RANDOMIZE 'initialization du générateur de nombre aléatoire
FOR i = 0 TO 2 'on ouvre une boucle de 3 (pour i tu comptes de 0 à 2)
OAleat = Int(Rnd(0, 4)) 'récupère un chiffre entre 0 et 4
TabStrip1.Index = OAleat 'on sélectionne l'onglet correspondant au chiffre aléatoire
PBX[i].Reparent(TabStrip1, (i * 32), 10) 'on y place la crevette
NEXT 'i 'fin de boucle
TabStrip1.Index = 0 'on reviens sur le 1er onglet.
END

Commentaires