PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → ComposantInfo ne me retourne rien pour l'un de mes composants
ComposantInfo ne me retourne rien pour l'un de mes composants
Iniciado por Nicolas ROBIN, 16,abr. 2020 17:25 - 1 respuesta
Miembro registrado
87 mensajes
Publicado el 16,abril 2020 - 17:25
Bonjour,

Je fais un ComposantListe() pour lister tous les composants de mon projet.
Je parcours le résultat et récupère tous les paramètres que propose ComposantInfo(...).

Seulement, j'ai certains composants pour lesquels tous les ComposantInfo() ne me retournent rien sauf ciEtat qui me retourne un état cieChargé (pas de date de génération, pas de nom physique, etc.).

J'ai essayer de faire un ComposantCharge(...) avant pour essayer de reforcer le chargement de ce composant avec son nom physique complet mais le résultat est le même.

Est-ce que vous avez une idée de ce qui pourrait expliquer cela et comment faire pour y remédier?
Qu'est-ce qui peut expliquer que la génération de ces composants diffèrent des autres alors que la configuration semble être la même?

Pour information, ceux qui sont bien chargés ont ont une date de génération, le bon nom physique, sont isolés, ne sont pas chargés au lancement et ont des numéros de versions cohérents.


Cordialement,

Nicolas ROBIN

--

NR
Miembro registrado
87 mensajes
Publicado el 16,abril 2020 - 17:27
Voici un bout de code dont je me sers pour faire ce test:

//------------------------------------------------------------------------------------------------------------------
MaListeComposant est une chaîne
tabComposants est un tableau associatif de chaînes
UnComposant est une chaîne
NomComposant est une chaîne
CheminComposant est une chaîne
sMsg est une chaine
sMsgComplet est une chaine
ResChargement est une chaine


sMsgComplet="NomComposant"+TAB+"CheminComposant"+TAB+"ciComposantGlobal"+TAB+"ciChargementLancement"+TAB+"ciCopyright"+TAB+"ciDateGénération"+TAB+"ciEtat"+TAB+"ciLibellé"+TAB+...
"ciNomPhysique"+TAB+"ciNuméroPatch"+TAB+"ciPropriétaire"+TAB+"ciSociété"+TAB+"ciVersion"+TAB+"ciVersionCompatible"+TAB+"ciVersionInterne"+TAB+"ciVersionProjet"+RC
Trace(sMsgComplet)


//On force le chargement
NomComposant ="NessyInterface"
CheminComposant ="C:\Nessy_3_6_3_41_32Bits"
ResChargement=ComposantCharge(NomComposant,CheminComposant)
SELON ResChargement
CAS cieAbsent : sMsg=NomComposant+TAB+CheminComposant+TAB+"*FORCAGE*: Le composant externe n'est pas présent dans le chemin indiqué."
CAS cieVersionTropAncienne : sMsg=NomComposant+TAB+CheminComposant+TAB+"*FORCAGE*: La version du composant externe est trop ancienne. Il est incompatible avec l'exécutable en cours."
CAS cieVersionTropRécente : sMsg=NomComposant+TAB+CheminComposant+TAB+"*FORCAGE*: La version du composant externe est trop récente. Il est incompatible avec l'exécutable en cours."
CAS cieChargé : sMsg=NomComposant+TAB+CheminComposant+TAB+"*FORCAGE*: Composant externe chargé"
FIN
Trace(sMsg)
Trace("---")
sMsgComplet+=sMsg+RC


//On force le chargement
NomComposant ="NessyInterface"
CheminComposant ="C:\Nessy_3_6_3_41_32Bits\NessyInterface.wdk"
ResChargement=ComposantCharge(NomComposant,CheminComposant)
SELON ResChargement
CAS cieAbsent : sMsg=NomComposant+TAB+CheminComposant+TAB+"*FORCAGE*: Le composant externe n'est pas présent dans le chemin indiqué."
CAS cieVersionTropAncienne : sMsg=NomComposant+TAB+CheminComposant+TAB+"*FORCAGE*: La version du composant externe est trop ancienne. Il est incompatible avec l'exécutable en cours."
CAS cieVersionTropRécente : sMsg=NomComposant+TAB+CheminComposant+TAB+"*FORCAGE*: La version du composant externe est trop récente. Il est incompatible avec l'exécutable en cours."
CAS cieChargé : sMsg=NomComposant+TAB+CheminComposant+TAB+"*FORCAGE*: Composant externe chargé"
FIN
Trace(sMsg)
Trace("---")
sMsgComplet+=sMsg+RC


//On liste les composants
MaListeComposant = ComposantListe()
UnComposant = ExtraitChaîne(MaListeComposant, rangPremier, RC)
TANTQUE UnComposant <> EOT
NomComposant =ExtraitChaîne(UnComposant, 1, TAB)
CheminComposant =ExtraitChaîne(UnComposant, 2, TAB)

tabComposants[NomComposant]=CheminComposant

// Composant suivant
UnComposant = ExtraitChaîne(MaListeComposant, rangSuivant, RC)
FIN
Trie(tabComposants)


POUR TOUT CheminComposant,NomComposant DE tabComposants

sMsg=NomComposant+TAB+CheminComposant

SELON ComposantInfo(NomComposant,ciComposantGlobal)
CAS VRAI: sMsg+=TAB+"GLOBAL"
CAS FAUX: sMsg+=TAB+"ISOLE"
CAS "": sMsg+=TAB+"?"
FIN


SELON ComposantInfo(NomComposant,ciChargementLancement)
CAS VRAI: sMsg+=TAB+"LANCEMENT"
CAS FAUX: sMsg+=TAB+"PAS LANCEMENT"
CAS "": sMsg+=TAB+"?"
FIN

sMsg+=TAB+ComposantInfo(NomComposant,ciCopyright)

sMsg+=TAB+ComposantInfo(NomComposant,ciDateGénération)

SELON ComposantInfo(NomComposant,ciEtat)
CAS cieAbsent: sMsg+=TAB+"cieAbsent"
CAS cieChargé: sMsg+=TAB+"cieChargé"
CAS cieInconnu: sMsg+=TAB+"cieInconnu"
CAS ciePrêt: sMsg+=TAB+"ciePrêt"
CAS cieVersionTropAncienne: sMsg+=TAB+"cieVersionTropAncienne"
CAS cieVersionTropRécente: sMsg+=TAB+"cieVersionTropRécente"
CAS "": sMsg+=TAB+"?"
FIN

sMsg+=TAB+ComposantInfo(NomComposant,ciLibellé)
sMsg+=TAB+ComposantInfo(NomComposant,ciNomPhysique)
sMsg+=TAB+ComposantInfo(NomComposant,ciNuméroPatch)
sMsg+=TAB+ComposantInfo(NomComposant,ciPropriétaire)
sMsg+=TAB+ComposantInfo(NomComposant,ciSociété)
sMsg+=TAB+ComposantInfo(NomComposant,ciVersion)
sMsg+=TAB+ComposantInfo(NomComposant,ciVersionCompatible)
sMsg+=TAB+ComposantInfo(NomComposant,ciVersionInterne)
sMsg+=TAB+ComposantInfo(NomComposant,ciVersionProjet)
Trace(sMsg)

sMsgComplet+=sMsg+RC
FIN
Trace("-------------------------------")
VersPressePapier(sMsgComplet)


--

NR