Mémoriser la largeur des colonnes list box

Olivier Marolleau

- Titre : Mémoriser la largeur des colonnes list box

- Auteur : Olivier Marolleau

- Parution : 25 novembre 2005

- Licence : 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.

Sommaire

- I. Présentation ♪

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].

1. `******************

2. `Méthode objet list box :

3. `******************

5. Au cas ou

6. : (Evenement formulaire=Sur chargement )

7. TOUT SELECTIONNER([Table 1])

8. SELECTION VERS TABLEAU([Table 1]Champ1;Colonne1)

9. SELECTION VERS TABLEAU([Table 1]Champ2;Colonne2)

10. SELECTION VERS TABLEAU([Table 1]Champ3;Colonne3)

11. RestoreListBoxDim (->THE_ListBox1)

12. : (Evenement formulaire=Sur libération )

13. SaveListBoxDim (->THE_ListBox1)

14. Fin de cas

17. `******************

18. ` Méthode "SaveListBoxDim"

19. ` pour mémoriser les préférences

20. `******************

22. `Déclarer les paramètres

23. C_POINTEUR($1)

25. `Déclarer les variables

26. C_ENTIER LONG($X1)

27. C_ENTIER LONG($Dim)

28. C_ENTIER LONG($OffSet)

29. C_ENTIER LONG($NbActual)

30. C_ENTIER LONG($Lbx_Table;$Lbx_Field)

32. `Rechercher nom de la list box

33. RESOUDRE POINTEUR($1;$Lbx_Name;$Lbx_Table;$Lbx_Field)

35. `Contrôler le type d'objet

36. Si (Type($1->)=Est un tableau booléen )

37. $Lbx_Name:="Obj_"+$Lbx_Name

39. `Definir Préférences

40. CHERCHER([Preferences];[Preferences]Kode=$Lbx_Name)

41. Si (Enregistrements trouves([Preferences])#1)

42. CREER ENREGISTREMENT([Preferences])

43. [Preferences]Kode:=$Lbx_Name

44. Fin de si

46. `Stocker nombre de colonnes

47. FIXER TAILLE BLOB([Preferences]Option;0)

48. $NbActual:=Lire nombre colonnes listbox(*;$Lbx_Name)

49. VARIABLE VERS BLOB($NbActual;[Preferences]Option;*)

51. `Stocker largeur des colonnes

52. Si ($NbActual>0)

53. Boucle ($X1;1;$NbActual)

54. $Dim:=Lire largeur colonne listbox(*;$Lbx_Name+"_C"+Chaine($X1))

55. VARIABLE VERS BLOB($Dim;[Preferences]Option;*)

56. Fin de boucle

57. Fin de si

58. STOCKER ENREGISTREMENT([Preferences])

60. Sinon

61. ALERTE("Le pointeur ne pointe pas vers une listebox")

62. Fin de si

65. `******************

66. `Méthode "RestoreListBoxDim"

67. `Pour restaurer les préférences

68. `******************

70. `Déclarer les paramètres

71. C_POINTEUR($1)

73. `Déclarer les variables

74. C_ENTIER LONG($X1)

75. C_ENTIER LONG($Dim)

76. C_ENTIER LONG($OffSet)

77. C_ENTIER LONG($NbStored)

78. C_ENTIER LONG($NbActual)

79. C_ENTIER LONG($Lbx_Table;$Lbx_Field)

80. C_ALPHA(32;$Lbx_Name)

82. `Rechercher nom de la listebox

83. RESOUDRE POINTEUR($1;$Lbx_Name;$Lbx_Table;$Lbx_Field)

85. `Contrôler le type d'objet

86. CHERCHER([Preferences];[Preferences]Kode="Obj_"+$Lbx_Name)

88. Si ((Type($1->)=Est un tableau booléen ) & (Enregistrements trouves([Preferences])=1))

89. $Lbx_Name:="Obj_"+$Lbx_Name

91. `Lire nombre de colonnes

92. $NbActual:=Lire nombre colonnes listbox(*;$Lbx_Name)

93. BLOB VERS VARIABLE([Preferences]Option;$NbStored;$OffSet)

95. `Restaurer largeur des colonnes existantes

96. Si ($NbActual>0)

97. Boucle ($X1;1;$NbActual)

98. Si ($X1<=$NbStored)

99. BLOB VERS VARIABLE([Preferences]Option;$Dim;$OffSet)

100. FIXER LARGEUR COLONNE LISTBOX(*;$Lbx_Name+"_C"+Chaine($X1);$Dim)

101. Fin de si

102. Fin de boucle

103. Fin de si

105. LIBERER ENREGISTREMENT([Preferences])

107. Fin de si