PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV (versões anteriores) → Problème avec la fonction énumèreélément
Problème avec la fonction énumèreélément
Iniciado por MARC CHERNET, jan., 25 2022 5:11 PM - 3 respostas
Membro registado
85 mensagems
Publicado em janeiro, 25 2022 - 5:11 PM
Bonjour

J'utilise le code suivant, pour changer l a couleur de toutes fenêtres d'un projet :

// Énumération des fenêtres d'un projet
NomFenêtre est une chaîne = EnumèreElément(enumFenêtre)
// Parcours de toutes les fenêtres

TANTQUE NomFenêtre <> ""
// Passage à la fenêtre suivante
NomFenêtre = EnumèreElément()
{NomFenêtre}..CouleurFond=RGB(253,229,214)
Trace(NomFenêtre)
FIN

cela fonctionne mais l'énumération s'arrêté sur F_menu, qui est la première page du projet.

J'ai supprimé cette particularité sans plus de réussite.

a l'arrivée sur cette fenêtre, j'ai "élément inconnu" alors que c'est la fonction elle-même qui trouve cet élément !!

L'élément 'F_Menu' est inconnu.

Pile des appels :
Clic sur couleur_fond (F_Admin.couleur_fond), ligne 8

Date : 25/01/2022 17:10:34
Projet : Coryphée

Informations supplémentaires :
Code erreur : 1059
Module : wd260vm64.dll (01F260101d - 26.0.480.22)
EIT_TYPE_WDFILE : <2>
EIT_IDCODE : <18>

--
Marc CHERNET
Expert comptable -
Expert en systèmes d'information
Développeur pour des missions d'expertise
Membro registado
3.845 mensagems
Popularité : +227 (347 votes)
Publicado em janeiro, 26 2022 - 4:00 AM
MARC CHERNET a écrit :
cela fonctionne mais l'énumération s'arrêté sur F_menu, qui est la première page du projet.

Cela fonctionne ou cela ne fonctionne pas ?
Je suppose que la ligne 8 est :
{NomFenêtre}..CouleurFond=RGB(253,229,214)

Dans un premier temps, ils est préférable d'ajouter le type d'indirection (ici indFenêtre) afin que Windev ne mouline pas à chercher d'abord dans les champ. Normalement tu a un warning qui te prévient de ça

Dans un deuxième temps, les opérations sur le fenêtre ne peuvent se faire que si la fenêtre est ouverte sinon, l'élément n'est pas reconnu.

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
3.845 mensagems
Popularité : +227 (347 votes)
Publicado em janeiro, 26 2022 - 8:28 AM
Une solution pour changer la couleur de fond de toute tes fenêtres peut être
1-De faire une copie du gabarit en cours
2-De modifier la couleur de fond des fenêtres dans le nouveau gabarit
3-D'utiliser ChangeGabarit

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
337 mensagems
Popularité : +11 (13 votes)
Publicado em janeiro, 27 2022 - 6:40 PM
J'ai l'impression qu'avec cette boucle qui commence par avancer d'une occurrence, la première fenêtre n'est jamais lue.
J'aurai bien écrit ça un peu différemment, en incrémentant en fin de boucle :
// Énumération des fenêtres d'un projet
NomFenêtre est une chaîne = EnumèreElément(enumFenêtre)
// Parcours de toutes les fenêtres
TANTQUE NomFenêtre <> ""

{NomFenêtre}..CouleurFond=RGB(253,229,214)
Trace(NomFenêtre)

//********* Passage à la fenêtre suivante
NomFenêtre = EnumèreElément()
FIN


--
Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements.