IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Mémoriser la largeur des colonnes list box

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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.
`******************
`Méthode objet list box :
`******************

Au cas ou
  : (Evenement formulaire=Sur chargement )
    TOUT SELECTIONNER([Table 1])
    SELECTION VERS TABLEAU([Table 1]Champ1;Colonne1)
    SELECTION VERS TABLEAU([Table 1]Champ2;Colonne2)
    SELECTION VERS TABLEAU([Table 1]Champ3;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

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2005 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.