Gambas France BETA


Pas de compte ? Incription

Test_Curseur

À propos de ce code

Bonjour
Ma première contribution... J'espère ne pas avoir fait trop de "bourdes".
Un petit programme de débutant pour la gestion du curseur (sans prétention).
Certainement beaucoup d’améliorations à apporter mais si cela peut être utile à quelques uns...
J'ai documenté le code et la traduction (à ma façon...), j'espère que cela facilitera la compréhension.
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
ModMain.Module
' Gambas module file

PUBLIC ValCurseur AS INTEGER 'La variable Publique "ValCurseur" est un nombre
PUBLIC ValCurseurConv AS STRING 'La variable Publique "ValCurseurConv" est du texte



FMain.class
' Gambas class file

' Bonjour
' Voici un petit programme pour voir les différents types de curseur que l'on peut utiliser...
' Certes il y a des améliorations possible
' Mais je l'ai voulu modifiable et il n'est là que pour servir d'exemple.
'
' Voici le détail de l'articulation...
'
' 2 possibilités pour voir ce que donne les différentes combinaisons.
' a) soit la visualisation des curseurs dit "Conventionnel"
' b) soit la visualisation des curseurs par valeur numérique.
' Je n'ai pas traité les cas ou l'on veut mettre une image ou du texte
' en lieu et place du curseur (mais est-ce possible ?)
' Je vous donne le détail de chaque ligne dans toutes les procédures...
' J'espère que ce petit programme pourra vous apporter un peu d'aide.
'
PUBLIC SUB _new() 'Inutilisé
END
PUBLIC SUB Form_Open() 'Ce qui sera fait à l'ouverture du formulaire
ME.Center 'Centre la fenêtre dans l'écran
Label1.Caption = "" 'On efface le contenu du Label1
Label2.Alignment = 3 'On affichera le contenu de Label2 en alignement centré
Label2.Caption = ("Conventionnel") 'On affiche le texte dans le Label2
WITH ListBox1 '"Pour" la ListBox1 (Option a)
.Add("Default", 0) 'On ajoute la ligne "Default" à l'index 0
.Add("Blank", 1) 'On ajoute la ligne "Blank" à l'index 1
.Add("Arrow", 2) 'On ajoute la ligne "Arrow" à l'index 2
.Add("Cross", 3) 'Et ainsi de suite pour toutes les autres lignes
.Add("Wait", 4) 'A noter que l'index commence à 0 pour la ligne 1
.Add("Text", 5) 'Ce qui fera un décalage par rapport au visuel.
.Add("SizeAll", 6) 'On peut apparemment ajouter autant de ligne que l'on veut.
.Add("SizeE", 7) 'Vous remarquerez que la liste n'est pas triée par ordre alphabétique
.Add("SizeS", 8) 'Mais si le cœur vous en dit vous pourrez le faire en changeant l'index
.Add("SizeN", 9) 'puis en modifiant les correspondances du "Select/Case/EndSelect" pour affichage
.Add("SizeH", 10) 'dans la procédure ListBox1_Click()
.Add("SizeV", 11) '
.Add("SizeW", 12) '
.Add("SizeNE", 13) '
.Add("SizeNW", 14) '
.Add("SizeSE", 15) '
.Add("SizeSW", 16) '
.Add("SizeNWSE", 17) '
.Add("SizeNESW", 18) '
.Add("SplitH", 19) '
.Add("SplitV", 20) '
.Add("Pointing", 21) '
.Visible = FALSE 'On cache ListBox1
END WITH 'Fin de "pour" ListBox1
ButtonBox1.Text = ListBox1.List[0] '0n attribue (arbitrairement) le curseur par "Default" à l'affichage dans ButtonBox1
Button1.Text = ("Plus") 'On change le texte affiché sur le Button1 (servira pour augmenter de 1 la valeur)
Button2.Text = ("Moins") 'On change le texte affiché sur le Button2 (servira pour diminuer de 1 la valeur)
Button3.Text = ("Quitter") 'On change le texte pour le Button3 (le fameux bouton "Quitter")
Button4.Text = ("RAZ") 'On change le texte du Button4 (pour une Remise A Zéro de la valeur)
Slider1.MaxValue = 155 'On dit que la valeur maximale du Slider1 sera de 155 (apparemment inutile d'aller au delà)
END 'fin de la procédure sur Form_Open()

PUBLIC SUB actualisation() 'Cette procédure sert à "Actualiser" l'affichage du curseur et le RAZ. (option b)
DIM ValCurseur AS INTEGER 'On Dim...ensionne la variable "ValCurseur" en indiquant que ce sera un nombre
ButtonBox1.Text = ListBox1.List[0] 'Puisque l'on va utiliser les autres boutons on remet l'affichage de ButtonBox1 à 0
IF ModMain.ValCurseur >= 155 THEN ModMain.ValCurseur = 155 'Si la variable ValCurseur du module ModMain est supérieur
'ou égale à 155 alors cette variable fera 155. Cela évitera d'aller au dela des 155 cas prévus au départ
IF ModMain.ValCurseur <= 0 THEN ModMain.ValCurseur = 0 'Si la variable ValCurseur du module ModMain est inférieur
'ou égale à 0 alors cette variable fera 0. Cela évitera de créer une erreur et de toutes façons je ne pense pas
'qu'il y ai des images de curseur inférieur à 0... (heu j'ai pas testé;-)
Label1.Caption = "Mouse = " & ModMain.ValCurseur '0n affiche "Mouse = " suivi de la valeur de la variable
'ValCurseur du module ModMain pour l'affichage à l'utilisateur.
Slider1.Value = ModMain.ValCurseur 'On ajuste l'affichage de Slider1 par rapport à la valeur de ValCurseur du module ModMain
ME.Mouse = ModMain.ValCurseur 'On affecte la valeur de ValCurseur du module ModMain à la souris (Me.Mouse)
END 'fin de la procédure actualisation()

PUBLIC SUB Button1_Click() 'Que se passe-t-il si on a cliqué sur le Button1 (Plus) ?
ModMain.ValCurseur = ModMain.ValCurseur + 1 'On augmente de 1 la valeur de ValCurseur du module ModMain
actualisation 'puis on actualise pour l'affichage.
END 'fin de la procédure Button1_Click()

PUBLIC SUB Button2_Click() 'Que se passe-t-il si on a cliqué sur le Button2 (Moins) ?
ModMain.ValCurseur = ModMain.ValCurseur - 1 'On diminue de 1 la valeur de ValCurseur du module ModMain
actualisation 'puis on actualise pour l'affichage.
END 'fin de la procédure Button2_Click()

PUBLIC SUB Slider1_Change() 'Que se passe-t-il si la valeur de Slider1 change ?
ModMain.ValCurseur = Slider1.Value 'On affecte la valeur de Slider1 à ValCurseur du module ModMain
actualisation 'puis on actualise pour l'affichage.
END 'fin de la procédure Slider1_Change()

PUBLIC SUB Button3_Click() 'Que se passe-t-il si on a cliqué sur le Button3 (Quitter) ?
QUIT 'Ben... On quitte... (il n'y a pas de gestion de l'enregistrement)
END 'fin de la procédure Button3_Click()

PUBLIC SUB Button4_Click() 'Que se passe-t-il si on a cliqué sur le Button4 (RAZ) ?
ModMain.ValCurseur = 0 'On met la valeur de ValCurseur du module ModMain à 0
Slider1.Value = ModMain.ValCurseur 'On ajuste le Slider1 à la valeur de ValCurseur du module ModMain soit 0
actualisation 'Et on va actualiser...
END 'fin de la procédure Button4_Click()

PUBLIC SUB ButtonBox1_Click() 'Que se passe-t-il si on a cliqué sur le ButtonBox1 (...) ?
ListBox1.Visible = TRUE 'On affiche ou rend visible la ListBox1
END 'fin de la procédure ButtonBox1_Click()

PUBLIC SUB ListBox1_Click() 'Que se passe-t-il si on a cliqué sur la ListBox1 (liste des choix) ?
ModMain.ValCurseur = ListBox1.Index 'ValCurseur du module ModMain récupère la valeur d'index de la ListBox1
ModMain.ValCurseurConv = ListBox1.List[ModMain.ValCurseur] 'ValCurseurConv du module ModMain récupère le texte de la ListBox1 selon l'index
ButtonBox1.Text = ModMain.ValCurseurConv 'On affiche dans ButtonBox1 la valeur de ValCurseurConv du module ModMain
SELECT ListBox1.Index 'Selon l'index de ListBox1 sélectionné...
CASE 0 'Cas 0 (première ligne sélectionnée mais l'index vaut 0... Souvenez-vous du décalage)
ME.mouse = Mouse.Default 'Ma souris = la souris par défaut
Label1.Caption = "Me.mouse = Mouse.Default" 'On affiche pour l'utilisateur...
CASE 1 'Cas 1
ME.mouse = Mouse.Blank 'Ma souris = la souris invisible (ça change de l'homme...)
Label1.Caption = "Me.mouse = Mouse.Blank" 'On affiche pour l'utilisateur...
CASE 2 'Cas 2
ME.mouse = Mouse.Arrow 'Ma souris = la souris en forme de flèche (comme par défaut)
Label1.Caption = "Me.mouse = Mouse.Arrow" 'On affiche pour l'utilisateur...
CASE 3 'Cas 3... Etc Etc Etc
ME.mouse = Mouse.Cross 'Ma souris = la souris en forme de croix
Label1.Caption = "Me.mouse = Mouse.Cross"
CASE 4
ME.mouse = Mouse.Wait 'Ma souris = la souris en forme de sablier d'occupation
Label1.Caption = "Me.mouse = Mouse.Wait"
CASE 5
ME.mouse = Mouse.Text 'Ma souris = la souris en forme de Insertion de texte
Label1.Caption = "Me.mouse = Mouse.Text"
CASE 6
ME.mouse = Mouse.SizeAll 'Ma souris = la souris en forme de main fermée
Label1.Caption = "Me.mouse = Mouse.SizeAll"
CASE 7
ME.mouse = Mouse.SizeE 'Ma souris = la souris en forme de modification fenêtre vers la droite
Label1.Caption = "Me.mouse = Mouse.SizeE"
CASE 8
ME.mouse = Mouse.SizeS 'Ma souris = la souris en forme de modification fenêtre vers le bas
Label1.Caption = "Me.mouse = Mouse.SizeS"
CASE 9
ME.mouse = Mouse.SizeN 'Ma souris = la souris en forme de modification fenêtre vers le haut
Label1.Caption = "Me.mouse = Mouse.SizeN"
CASE 10
ME.mouse = Mouse.SizeH 'Ma souris = la souris en forme de flèches gauche et droite
Label1.Caption = "Me.mouse = Mouse.SizeH"
CASE 11
ME.mouse = Mouse.SizeV 'Ma souris = la souris en forme de flèches haut et bas
Label1.Caption = "Me.mouse = Mouse.SizeV"
CASE 12
ME.mouse = Mouse.SizeW 'Ma souris = la souris en forme de modification fenêtre vers la gauche
Label1.Caption = "Me.mouse = Mouse.SizeW"
CASE 13
ME.mouse = Mouse.SizeNE 'Ma souris = la souris en forme de modification fenêtre vers la droite en haut
Label1.Caption = "Me.mouse = Mouse.SizeNE"
CASE 14
ME.mouse = Mouse.SizeNW 'Ma souris = la souris en forme de modification fenêtre vers la gauche en haut
Label1.Caption = "Me.mouse = Mouse.SizeNW"
CASE 15
ME.mouse = Mouse.SizeSE 'Ma souris = la souris en forme de modification fenêtre vers la droite en bas
Label1.Caption = "Me.mouse = Mouse.SizeSE"
CASE 16
ME.mouse = Mouse.SizeSW 'Ma souris = la souris en forme de modification fenêtre vers la gauche en bas
Label1.Caption = "Me.mouse = Mouse.SizeSW"
CASE 17
ME.mouse = Mouse.SizeNWSE 'Ma souris = la souris en forme de flèches diagonale
Label1.Caption = "Me.mouse = Mouse.SizeNWSE"
CASE 18
ME.mouse = Mouse.SizeNESW 'Ma souris = la souris en forme de flèches diagonale
Label1.Caption = "Me.mouse = Mouse.SizeNESW"
CASE 19
ME.mouse = Mouse.SplitH 'identique à SizeH
Label1.Caption = "Me.mouse = Mouse.SplitH"
CASE 20
ME.mouse = Mouse.SplitV 'identique à SizeV
Label1.Caption = "Me.mouse = Mouse.SplitV"
CASE 21
ME.mouse = Mouse.Pointing 'Ma souris = la souris en forme de main index levé
Label1.Caption = "Me.mouse = Mouse.Pointing"
END SELECT 'Fin de Selon l'index de ListBox1 sélectionné...
ListBox1.Visible = FALSE 'On viens de faire une sélection donc on cache la ListBox1
END 'fin de la procédure ListBox1_Click()
'Tous les objets sont codés ici. Je n'ai pas utilisé FMain.form/Propriétés afin d'éviter confusion
'et gestion de la priorité des arguments.
'Les 2 variables ValCurseur et ValCurseurConv se trouvent dans le module ModMain.
'De cette façon elles sont atteignable à partir de n'importe qu'elle feuille (ou form).
'J'ai essayé de traduire, à ma façon, les différentes instructions utilisées dans ce programme.
'C'est une traduction tout à fait personnelle qui n'engage que moi. Mais de cette façon je trouve qu'il est plus
'facile de comprendre le fonctionnement du programme...

Commentaires