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
| ' Gambas class file
PRIVATE $hFileViewObs AS Observer PRIVATE $hDirViewObs AS Observer PRIVATE $hFileView AS FileView PRIVATE $hDirView AS DirView
PUBLIC SUB HFVObs_MouseDrag() 'Cette procédure indique uniquement une image lors du déplacement. IF Mouse.Left THEN Drag.Icon = Picture["icon:/32/file"] FileChooser1.Drag(FileChooser1.SelectedPath) ENDIF
END
PUBLIC SUB HDVObs_MouseDrag() 'Cette procédure indique uniquement une image lors du déplacement. IF Mouse.Left THEN Drag.Icon = Picture["icon:/32/directory"] FileChooser1.Drag(FileChooser1.SelectedPath) ENDIF
END
PUBLIC SUB ToolButton1_Drop() 'Cette procédure indique que quelque chose a été déposé sur l'objet ToolButton1.Picture = Drag.Icon PRINT "Quelque chose a été déposé sur le ToolButton 1" END
PUBLIC SUB ToolButton1_DragMove()
Drag.Show(ToolButton1)
END
PUBLIC SUB ToolButton1_MouseDrag()
IF Mouse.Left THEN Drag.Icon = LAST.Picture LAST.Drag(LAST.Picture.Image) ENDIF
END
PUBLIC SUB FileChooser1_DragMove()
Drag.Show(FileChooser1)
END
PUBLIC SUB FileChooser1_Drop() 'Cette procédure indique que quelqque chose a été déposé sur l'objet PRINT "Quelque chose a été déposé sur le FileChooser1" END
PRIVATE SUB GetFileView() 'Cette procedure est le rouage central de l'exemple 'Elle permet de retourner les éléments constitutif du FileChooser1...
' Dim h As Control ' Dim g1 As DirView ' Dim g2 As TreeView ' Dim g3 As TextBox ' Dim g4 As ComboBox ' Dim h2 As Form ' Dim h3 As Container ' Dim h4 As HSplit ' Dim h5 As FileView ' Dim h6 As IconView ' Dim h7 As ScrollArea ' h2 = FileChooser1.Children[0] ' g1 = h2.Children[1] ' Print h2.Name 'Form ' g2 = h2.Children[2] ' Print g2.Name ' g3 = g2.Children[0] ' Print g3.Name ' g4 = g3.Children[0] ' Print g4.Name ' g1 = FileChooser1.DirView ' Print g1.Name ' g2 = g1.Children[0] ' Print g2.Name ' ' h2 = FileChooser1.Children[0] ' h3 = h2.Children[0] ' Print h2.Name 'Form ' h3 = h3.Children[0] ' Print h3.Name 'Container ' h4 = h3.Children[2] ' Print h4.Name 'HSplit ' h3 = h4.Children[1] ' Print h3.Name 'Container ' h5 = h3.Children[0] ' Print h5.Name 'FileView ' h6 = h5.Children[0] ' Print h6.Name ' IconView ' h7 = h6.Children[0] ' Print h7.Name 'ScrollArea 'Comme la classe 'observer' intercepte les évènements AVANT l'observateur de l'objet 'il suffit de rediriger les composants interne du FileChooser 'Un FileChooser est composé (entre autre) d'un DirView et d'un FileView. 'décommenter les lignes ci dessus pour voir une partie des composants...
'On indique que $hDirView est en réalité le DirView du FileChooser1 $hDirView = FileChooser1.DirView ' Print $hDirView.Name 'affichage console
'On indique que $hFileView est en réalité le FileView du FileChooser1 $hFileView = FileChooser1.FileView ' Print $hFileView.Name 'affichage console 'on indique un nouvel 'observateur' sur l'objet $hDirView et on créé HDVObs (pour la partie répertoires) $hDirViewObs = NEW Observer($hDirView) AS "HDVObs" 'on indique un nouvel 'observateur' sur l'objet $hFileView et on créé HFVObs (pour la partie fichiers) $hFileViewObs = NEW Observer($hFileView) AS "HFVObs"
END
PUBLIC SUB Form_Open()
GetFileView()
END
|