Un meilleur job mieux payé ?

Deviens chef de projet, développeur, ingénieur, informaticien

Mets à jour ton profil pro

ça m'intéresse

Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Mémoriser la largeur des colonnes list box

Date de publication : 25/11/05

Par Olivier Marolleau (Technicien Support Technique)
 



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.

info A Noter que :

· par souci de clarté les noms d'objets devrons ê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].

   `******************
   `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



Valid XHTML 1.1!Valid CSS!

Copyright © 2005 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.

Contacter le responsable de la rubrique 4D