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
| ' Gambas class file
' Private fValeur1 As Float ' Private fValeur2 As Float PRIVATE fValeur AS NEW FLOAT[9] PRIVATE signe AS STRING '<------------- signe des opérations PRIVATE i AS INTEGER PRIVATE j AS INTEGER
'<------------------------------------- création d'un Group pour les chiffres nommé Chiffres '<------------------------------------- création d'un Group pour les opérations nommé Signes
PUBLIC SUB btnClose_Click()
ME.Close()
END
PUBLIC SUB Chiffres_Click() '<------- évènement _Click() pour le Group Chiffres
IF fValeur[0] = 0 THEN TextBox1.Clear'<-test pour effacer le textbox TextBox1.Text &= LAST.text '<------- concaténation dans textbox1 fValeur[i] = Val(TextBox1.Text)'<----- récupération de la valeur affichée
END
PUBLIC SUB Signes_Click() '<---------- évènement _Click() pour le Group Signes
SELECT CASE LAST.Text '<---------- en fonction du dernier texte des signes CASE ELSE fValeur[j + 1] = fValeur[j] '<------- on récupère la deuxième valeur END SELECT
signe = LAST.Text TextBox1.Clear
END
PUBLIC SUB Form_Open()
i = 0 j = 0
fValeur.Add(0)
END
PUBLIC SUB btnEgal_Click() '<---------- évènement _Click() lors de l'appui sur "="
SELECT CASE signe '<---------------- les opérations à faire en fonction du signe cliqué CASE "+" fValeur[i + 1] += fValeur[i] CASE "-" fValeur[i + 1] -= fValeur[i] CASE "/" IF fValeur[i] <> 0 THEN fValeur[i + 1] /= fValeur[i] ELSE RETURN CASE "*" fValeur[i + 1] *= fValeur[i] END SELECT
TextBox1.text = Str$(fValeur[i + 1]) '<------------------- localisation Europa
END
PUBLIC SUB Form_KeyPress()
DIM vText AS VARIANT DIM cChiffres AS String[] = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ","] DIM cSignes AS String[] = ["+", "-", "*", "/"]
vText = Key.Text
IF vText MATCH "." THEN vText = Replace(vText, ".", ",") '<----------------- localisation Europa
IF cChiffres.Exist(vText) THEN LAST.text = vText Chiffres_Click() ENDIF
IF cSignes.Exist(vText) THEN LAST.text = vText Signes_Click() ENDIF
ME.Text = "Calculatrice" '<------- pour ne pas afficher vText dans le titre du formulaire
IF key.Code = key.Return OR key.Code = key.Enter THEN btnEgal_Click() IF key.code = Key.Esc THEN btnCancel_Click()
IF NOT cSignes.Exist(Key.Text) OR NOT cChiffres.Exist(Key.Text) THEN STOP EVENT '<-- Pas autre chose que chiffres ou signes
END
PUBLIC SUB btnCancel_Click()
TextBox1.Clear
END
|