Variable "fantôme" dans le fichier de compilation

Bonjour,

j’utilise le fichier ****_symbols.txt pour identifier les variables qui peuvent être “nettoyées” de la base. Or, j’ai quelques variables qui n’existent plus (si si, je l’assure), et qui apparaissent tout de même dans le fichier ****_symbols.txt
exemple :
ListBoxHidden Texte (F) _PaletteExplorer

Ma question est donc : comment les supprimer définitivement sachant que je n’y accède pas.
Le point commun qu’elles ont toutes, c’est que l’indicateur (F) est présent.

PS: j’ai déjà utiliser le CSM (réparation / compactage), mais rien n’y fait

Patrick

Je ne connais pas trop ce fichier de symboles, mais (M) signifie méthode, (MF) méthode form, donc (F) c’est formulaire.

Si je compile en “mode laxatif” (Effectuer les passes de typage) après avoir mis des tableaux non déclarés dans les propriétés d’une listbox, j’ai ça :
Code :
tabloCouleurFond∆Entier long∆1 dimension∆(F) monFormulaire
tabloCouleurPolice∆Entier long∆1 dimension∆(F) monFormulaire
tabloStyle∆Entier long∆1 dimension∆(F) monFormulaire
(∆ = tabulation)
J’en déduis que ce ListBoxHidden est une variable qui traîne dans une propriétés de listbox - vu le nom “hidden”, je regarderais “tableau de contrôle de lignes” (anciennement “tableau des lignes masquées”, il me semble). Je pense que ça ne pourrait pas t’arriver avec la compile en mode non laxatif (toutes les variables sont déclarées), sauf que c’est plus chiant.

Pas bête Arnaud.
Merci, je crois que tu m’as mis sur la piste.

A charge de revanche :wink:

Attention: en plus de ne pas être trouvable par une recherche dans le développement ce type de tableau est mal géré par 4D (qui l’initialise automatiquement avec un mauvais type :evil:), il faut le déclarer “à la mano” avec le BON type…

Exemple:
au lieu de ça:
TABLEAU ENTIER LONG(TabLgMasque_Contacts;0)

4D type la variable en automatique ainsi:
C_TEXTE(TabLgMasque_Contacts)

autant vous dire que cela ne risque pas de fonctionner…

Merci Manuel,

mais c’est plus sioux que cela. J’utilisais, avant de passer aux Collections, ce type de tableaux et quand j’ai “modifié” le type de Listbox, ces tableaux qui n’existent plus dans le code reste malgré tout dans la définition de l’objet mais inaccessible :oops:, même en revenant sur le type “tableau”.
Du coup, je me promène avec des “variables” qui n’existent plus dans tout mon code et qui sont inaccessible en structure :evil:

C’est embêtant effectivement :roll:
Mais, attention, tu peux avoir l’effet inverse c’est penser qu’une variable n’est plus utilisée car n’apparaissant plus lorsque tu fais un chercher dans le développement. Donc, tu supprimes toutes tes initialisations, manque de bol la variable est bien utilisée en tant que tableau dans les listbox…

Vivement le mode projet que tu puisses supprimer simplement la ligne de texte… :mrgreen:

Il doit falloir passer par une suppression/recréation de la listbox, alors, avec interdit de dupliquer. Ça va sûrement te plaire, surtout si ça marche pas :mrgreen:

oui, j’ai bien peur d’en arriver à cela et d’autant plus que je n’ai pas 1 mais 8 LB sur 3 pages dans ce formulaire :evil:
Ca sent quand même le petit bug ce truc qui ne se réinitialise pas correctement. M’enfin, j’vais faire avec :cry:

oui tout à fait d’accord avec toi, sauf que je n’ai plus aucune listbox tableau dans le composant en question :wink:

Salut Arnaud,

j’ai finalement supprimé et recréé les Listbox jusqu’à ce que ces variables fantômes disparaissent.
Joli bug tout de même que la réinitialisation de la LB ne se fasse pas correctement suite à un changement de type.

Patrick

Ce n’est pas très clean, certes. Mais je me suis demandé si cette absence de réinitialisation est voulue, en supposant qu’après avoir changé le type en LB collection, on l’a fait par erreur ou qu’on regrette, on revient à LB tableau : ha bin zut, 4D a fait le ménage. Tu as posté un bug ?

Plus généralement sur la façon de développer, dupliquer un objet formulaire et/ou changer son type plus ou moins radicalement est monnaie courante. Mais quand je vois ce que ça donne quand je reprends d’anciennes bases, je me dis que c’est une sale habitude et qu’on ferait mieux de “partir de zéro” la plupart du temps.

Bug: quésako :wink:
Plus sérieusement, ca va venir.