I. Présentation ♪▲
Produit : 4D 2004 · Plateforme : Mac & Win
Cette note vous montre un exemple de code pour mémoriser la largeur des colonnes d'une list box.
À Noter que :
- par souci de clarté les noms d'objets devront être préfixés de "Obj_", les colonnes devront avoir comme suffixe "_C" suivie du numéro de la colonne.
- pour l'exemple les propriétés seront stockées dans une table [Preferences].
Sélectionnez
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.
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.
`******************
`Méthode objet list box :
`******************
Au cas ou
: (
Evenement formulaire
=
Sur chargement
)
TOUT SELECTIONNER
([
Table
1
])
SELECTION VERS TABLEAU
([
Table
1
]
Champ
1
;
Colonne1)
SELECTION VERS TABLEAU
([
Table
1
]
Champ
2
;
Colonne2)
SELECTION VERS TABLEAU
([
Table
1
]
Champ
3
;
Colonne3)
RestoreListBoxDim (->
THE_ListBox1)
: (
Evenement formulaire
=
Sur libération
)
SaveListBoxDim (->
THE_ListBox1)
Fin de cas
`******************
` Méthode "SaveListBoxDim"
` pour mémoriser les préférences
`******************
`Déclarer les paramètres
C_POINTEUR
(
$1
)
`Déclarer les variables
C_ENTIER LONG
(
$X1
)
C_ENTIER LONG
(
$Dim
)
C_ENTIER LONG
(
$OffSet
)
C_ENTIER LONG
(
$NbActual
)
C_ENTIER LONG
(
$Lbx_Table
;
$Lbx_Field
)
`Rechercher nom de la list box
RESOUDRE POINTEUR
(
$1
;
$Lbx_Name
;
$Lbx_Table
;
$Lbx_Field
)
`Contrôler le type d'objet
Si
(
Type
(
$1
->)=
Est un tableau booléen
)
$Lbx_Name
:=
"Obj_"
+
$Lbx_Name
`Definir Préférences
CHERCHER
([
Preferences];[
Preferences]
Kode=
$Lbx_Name
)
Si
(
Enregistrements trouves
([
Preferences])#
1
)
CREER ENREGISTREMENT
([
Preferences])
[
Preferences]
Kode:=
$Lbx_Name
Fin de si
`Stocker nombre de colonnes
FIXER TAILLE BLOB
([
Preferences]
Option;
0
)
$NbActual
:=
Lire nombre colonnes listbox(*;
$Lbx_Name
)
VARIABLE VERS BLOB
(
$NbActual
;[
Preferences]
Option;*)
`Stocker largeur des colonnes
Si
(
$NbActual
>
0
)
Boucle
(
$X1
;
1
;
$NbActual
)
$Dim
:=
Lire largeur colonne listbox(*;
$Lbx_Name
+
"_C"
+
Chaine
(
$X1
))
VARIABLE VERS BLOB
(
$Dim
;[
Preferences]
Option;*)
Fin de boucle
Fin de si
STOCKER ENREGISTREMENT
([
Preferences])
Sinon
ALERTE
(
"Le pointeur ne pointe pas vers une listebox"
)
Fin de si
`******************
`Méthode "RestoreListBoxDim"
`Pour restaurer les préférences
`******************
`Déclarer les paramètres
C_POINTEUR
(
$1
)
`Déclarer les variables
C_ENTIER LONG
(
$X1
)
C_ENTIER LONG
(
$Dim
)
C_ENTIER LONG
(
$OffSet
)
C_ENTIER LONG
(
$NbStored
)
C_ENTIER LONG
(
$NbActual
)
C_ENTIER LONG
(
$Lbx_Table
;
$Lbx_Field
)
C_ALPHA(
32
;
$Lbx_Name
)
`Rechercher nom de la listebox
RESOUDRE POINTEUR
(
$1
;
$Lbx_Name
;
$Lbx_Table
;
$Lbx_Field
)
`Contrôler le type d'objet
CHERCHER
([
Preferences];[
Preferences]
Kode=
"Obj_"
+
$Lbx_Name
)
Si
((
Type
(
$1
->)=
Est un tableau booléen
)
&
(
Enregistrements trouves
([
Preferences])=
1
))
$Lbx_Name
:=
"Obj_"
+
$Lbx_Name
`Lire nombre de colonnes
$NbActual
:=
Lire nombre colonnes listbox(*;
$Lbx_Name
)
BLOB VERS VARIABLE
([
Preferences]
Option;
$NbStored
;
$OffSet
)
`Restaurer largeur des colonnes existantes
Si
(
$NbActual
>
0
)
Boucle
(
$X1
;
1
;
$NbActual
)
Si
(
$X1
<=
$NbStored
)
BLOB VERS VARIABLE
([
Preferences]
Option;
$Dim
;
$OffSet
)
FIXER LARGEUR COLONNE LISTBOX(*;
$Lbx_Name
+
"_C"
+
Chaine
(
$X1
);
$Dim
)
Fin de si
Fin de boucle
Fin de si
LIBERER ENREGISTREMENT
([
Preferences])
Fin de si