 | Une autre question poo:
Je crée une classe appartement avec la propriété taille comme ceci:
1
2
3
4
5
6
7
8
9
10
| PROPERTY taille AS INTEGER PRIVATE $taille AS INTEGER
PRIVATE FUNCTION taille_Read() AS INTEGER RETURN $taille END
PRIVATE SUB taille_Write(Value AS INTEGER) $taille = Value END
|
et dans une form, je créé 10 instances de cette classe comme ceci :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| PUBLIC t1 AS NEW appartement PUBLIC t2 AS NEW appartement PUBLIC t3 AS NEW appartement PUBLIC t4 AS NEW appartement PUBLIC t5 AS NEW appartement PUBLIC f1 AS NEW appartement PUBLIC f2 AS NEW appartement PUBLIC f3 AS NEW appartement PUBLIC f4 AS NEW appartement PUBLIC f5 AS NEW appartement
t1.taille = 23 t2.taille = 26 t3.taille = 85 t4.taille = 210 t5.taille = 45 f1.taille = 12 f2.taille = 48 f3.taille = 59 f4.taille = 77 f5.taille = 156
|
maintenant dans une form Fmain, form de démarrage, je souhaite afficher la taille de tous les appartements dans une gridview.
je fais :
1
2
| gridview1[ligne1, colonne].Text = t1.taille gridview1[ligne2, colonne].Text = t2.taille
|
etc...
n'y a-t-il pas la possibilité de mettre tout ça dans une boucle for next pour automatiser la chose?
Merci pour votre réponse.
|
![]() | Dans Fmain :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| PRIVATE $apart AS Class1
PUBLIC SUB Form_Open() DIM essai AS Class1 $apart = NEW Class1(Class1.fin, 5) $apart.add(Class1.t, [23, 26, 85, 210, 45]) essai = Class1(12) $apart.add(Class1.f, [essai, 48, 59, 77, 156])
END
PUBLIC SUB GridView1_Data(Row AS INTEGER, Column AS INTEGER)
GridView1.Data.Text = Str($apart.tableau[row, Column].taille)
END
|
Puis dans une classe que j'ai nomé Class1 :
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
| ' Gambas class file
CREATE STATIC INHERITS Array
PROPERTY taille AS INTEGER PROPERTY tableau AS Class1[]
PRIVATE $taille AS INTEGER PRIVATE $tableau AS Class1[]
PUBLIC ENUM t, f, fin
PUBLIC SUB _new(OPTIONAL row AS INTEGER, Column AS INTEGER)
IF row <> 0 OR Column <> 0 THEN $tableau = NEW Class1[row, Column]
END
PUBLIC SUB _call(OPTIONAL tl AS INTEGER) AS Class1 ''tl = taille de l'appartement
DIM cl AS NEW Class1 cl.taille = tl RETURN cl
END
PUBLIC SUB add(row AS INTEGER, Value AS Variant[])
DIM val AS VARIANT DIM i AS INTEGER FOR EACH val IN Value IF TypeOf(Val) = gb.Integer THEN 'si val est un integer c'est que l'on passe la taille de l'appartement sinon on passe une class1 $tableau[row, i] = class1(val) ELSE $tableau[row, i] = val ENDIF i += 1 NEXT
END
PRIVATE FUNCTION taille_Read() AS INTEGER RETURN $taille END
PRIVATE SUB taille_Write(Value AS INTEGER) $taille = Value END
PRIVATE FUNCTION tableau_Read() AS Class1[]
RETURN $tableau
END
PRIVATE SUB tableau_Write(Value AS Class1[])
$tableau = Value
END
|
|