Bonjour à tous
J'ai un erreur d'exécution lors d'une indirection sur un membre de classe.
Dans le code qui suit j'ai l'erreur dans la méthode mDuplique() ?!
Le code ci-après devrait permettre de dupliquer des objets _Type.
Je crois qu'il fonctionnait sous WD9 (j'ai migré en 10 récemment)
Connaissez vous un moyen de récupérer la valeur des membres d'une instance
de classe ?
Merci à tous
lType est un _Type dynamique
lType1 est un _Type dynamique
lType = allouer un _Type
lType1 = allouer un _Type
lType1:IDTYPE = 12
lType:mDuplique(lType1) <-- ca plante
liberer lType
liberer lType1
_Type est une classe
hérite de __enreg
IDTYPE est un entier
DESIGNATION est une chaîne
TYPE est une chaîne
SOUSTYPE est une chaîne
FIN
PROCEDURE _Type::Constructeur()
// Variables fichier
:_NOMFIC = "TYPE"
:_NOMID = "IDTYPE"
:mNommeChamps("IDTYPE")
:mNommeChamps("DESIGNATION")
:mNommeChamps("TYPE")
:mNommeChamps("SOUSTYPE")
// Nota: la méthode mNommChamps() crée un tableau contenant les noms des
membres (pas moyen de le créer auto à partir de la déclaration des membres
?!)
__Enreg est une classe
IDENT est un entier
_NOMFIC est une chaîne
_NOMID est une chaîne
MODE est une chaîne
FLAG est un entier sur 1 octet
_Champs est un tableau dynamique
_Init est un objet dynamique
FIN
PROCEDURE VIRTUELLE __enreg:mDuplique(pObj)
lCh1 est une chaîne
lCh2 est une chaîne
x est un entier
y est un entier
y = Dimension(:_Champs)
POUR x = 1 A y
lCh1 = ":" + :_Champs[x]
lCh2 = "pObj:" + :_Champs[x]
:mSetValeur(lCh1,{lCh2}) <----- Ca plante sur lCh2: "l'élément
pObj:IDTYPE est inconnu"
FIN
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilles TOURREAU
I.G.LOG vient de nous annoncer :
Pour les spécialistes de le POO !!!
Bonjour à tous J'ai un erreur d'exécution lors d'une indirection sur un membre de classe. Dans le code qui suit j'ai l'erreur dans la méthode mDuplique() ?!
Le code ci-après devrait permettre de dupliquer des objets _Type. Je crois qu'il fonctionnait sous WD9 (j'ai migré en 10 récemment) Connaissez vous un moyen de récupérer la valeur des membres d'une instance de classe ? Merci à tous
lType est un _Type dynamique lType1 est un _Type dynamique
lType = allouer un _Type lType1 = allouer un _Type lType1:IDTYPE = 12 lType:mDuplique(lType1) <-- ca plante
liberer lType liberer lType1
_Type est une classe hérite de __enreg IDTYPE est un entier DESIGNATION est une chaîne TYPE est une chaîne SOUSTYPE est une chaîne FIN
// Nota: la méthode mNommChamps() crée un tableau contenant les noms des membres (pas moyen de le créer auto à partir de la déclaration des membres ?!)
__Enreg est une classe IDENT est un entier _NOMFIC est une chaîne _NOMID est une chaîne MODE est une chaîne FLAG est un entier sur 1 octet _Champs est un tableau dynamique _Init est un objet dynamique FIN
PROCEDURE VIRTUELLE __enreg:mDuplique(pObj)
lCh1 est une chaîne lCh2 est une chaîne x est un entier y est un entier
y = Dimension(:_Champs) POUR x = 1 A y lCh1 = ":" + :_Champs[x] lCh2 = "pObj:" + :_Champs[x] :mSetValeur(lCh1,{lCh2}) <----- Ca plante sur lCh2: "l'élément pObj:IDTYPE est inconnu" FIN
RENVOYER Vrai
PROCEDURE __enreg:mSetValeur(pMembre,pValeur="")
{pMembre} = pValeur
Sous Windev 9, selon le D.S.B. (Documentation Semi-Baclé... technologie exclusive de PC-SOFT) il n'est pas possible d'utiliser l'indirection avec le nom de l'objet + un membre.
Tu peux seulement faire :
{":membre", indVariable} = ... (Utilisable dans une classe) Ou alors {"obj", indVariable}:membre = ...
Extrait de la documentation :
************************** Indirection sur un membre de classe
{ <Expression> }
Détail du paramètre
<Expression> : Chaîne de caractères
Expression permettant d'identifier le membre de la classe. Si le membre est :
global, utilisez la syntaxe suivante : {" :: NomDuMembre"}
n'est pas global, utilisez la syntaxe suivante : {" : NomDuMembre"} ------------------------------------ Indirection sur une structure
Une indirection ne peut pas contenir un accès à une structure ou à une instance de classe. Cependant, il est possible d'utiliser la syntaxe suivante :
{<Variable structure>} : membre **************************
Et a ma connaissance en Windev 9, il n'y a aucun moyen d'explorer les membres d'une classe...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
I.G.LOG vient de nous annoncer :
Pour les spécialistes de le POO !!!
Bonjour à tous
J'ai un erreur d'exécution lors d'une indirection sur un membre de classe.
Dans le code qui suit j'ai l'erreur dans la méthode mDuplique() ?!
Le code ci-après devrait permettre de dupliquer des objets _Type.
Je crois qu'il fonctionnait sous WD9 (j'ai migré en 10 récemment)
Connaissez vous un moyen de récupérer la valeur des membres d'une instance
de classe ?
Merci à tous
lType est un _Type dynamique
lType1 est un _Type dynamique
lType = allouer un _Type
lType1 = allouer un _Type
lType1:IDTYPE = 12
lType:mDuplique(lType1) <-- ca plante
liberer lType
liberer lType1
_Type est une classe
hérite de __enreg
IDTYPE est un entier
DESIGNATION est une chaîne
TYPE est une chaîne
SOUSTYPE est une chaîne
FIN
// Nota: la méthode mNommChamps() crée un tableau contenant les noms des
membres (pas moyen de le créer auto à partir de la déclaration des membres
?!)
__Enreg est une classe
IDENT est un entier
_NOMFIC est une chaîne
_NOMID est une chaîne
MODE est une chaîne
FLAG est un entier sur 1 octet
_Champs est un tableau dynamique
_Init est un objet dynamique
FIN
PROCEDURE VIRTUELLE __enreg:mDuplique(pObj)
lCh1 est une chaîne
lCh2 est une chaîne
x est un entier
y est un entier
y = Dimension(:_Champs)
POUR x = 1 A y
lCh1 = ":" + :_Champs[x]
lCh2 = "pObj:" + :_Champs[x]
:mSetValeur(lCh1,{lCh2}) <----- Ca plante sur lCh2: "l'élément
pObj:IDTYPE est inconnu"
FIN
RENVOYER Vrai
PROCEDURE __enreg:mSetValeur(pMembre,pValeur="")
{pMembre} = pValeur
Sous Windev 9, selon le D.S.B. (Documentation Semi-Baclé... technologie
exclusive de PC-SOFT) il n'est pas possible d'utiliser l'indirection
avec le nom de l'objet + un membre.
Tu peux seulement faire :
{":membre", indVariable} = ... (Utilisable dans une classe)
Ou alors
{"obj", indVariable}:membre = ...
Extrait de la documentation :
**************************
Indirection sur un membre de classe
{ <Expression> }
Détail du paramètre
<Expression> : Chaîne de caractères
Expression permettant d'identifier le membre de la classe.
Si le membre est :
global, utilisez la syntaxe suivante : {" :: NomDuMembre"}
n'est pas global, utilisez la syntaxe suivante : {" : NomDuMembre"}
------------------------------------
Indirection sur une structure
Une indirection ne peut pas contenir un accès à une structure ou à une
instance de classe. Cependant, il est possible d'utiliser la syntaxe
suivante :
{<Variable structure>} : membre
**************************
Et a ma connaissance en Windev 9, il n'y a aucun moyen d'explorer les
membres d'une classe...
Bonjour à tous J'ai un erreur d'exécution lors d'une indirection sur un membre de classe. Dans le code qui suit j'ai l'erreur dans la méthode mDuplique() ?!
Le code ci-après devrait permettre de dupliquer des objets _Type. Je crois qu'il fonctionnait sous WD9 (j'ai migré en 10 récemment) Connaissez vous un moyen de récupérer la valeur des membres d'une instance de classe ? Merci à tous
lType est un _Type dynamique lType1 est un _Type dynamique
lType = allouer un _Type lType1 = allouer un _Type lType1:IDTYPE = 12 lType:mDuplique(lType1) <-- ca plante
liberer lType liberer lType1
_Type est une classe hérite de __enreg IDTYPE est un entier DESIGNATION est une chaîne TYPE est une chaîne SOUSTYPE est une chaîne FIN
// Nota: la méthode mNommChamps() crée un tableau contenant les noms des membres (pas moyen de le créer auto à partir de la déclaration des membres ?!)
__Enreg est une classe IDENT est un entier _NOMFIC est une chaîne _NOMID est une chaîne MODE est une chaîne FLAG est un entier sur 1 octet _Champs est un tableau dynamique _Init est un objet dynamique FIN
PROCEDURE VIRTUELLE __enreg:mDuplique(pObj)
lCh1 est une chaîne lCh2 est une chaîne x est un entier y est un entier
y = Dimension(:_Champs) POUR x = 1 A y lCh1 = ":" + :_Champs[x] lCh2 = "pObj:" + :_Champs[x] :mSetValeur(lCh1,{lCh2}) <----- Ca plante sur lCh2: "l'élément pObj:IDTYPE est inconnu" FIN
RENVOYER Vrai
PROCEDURE __enreg:mSetValeur(pMembre,pValeur="")
{pMembre} = pValeur
Sous Windev 9, selon le D.S.B. (Documentation Semi-Baclé... technologie exclusive de PC-SOFT) il n'est pas possible d'utiliser l'indirection avec le nom de l'objet + un membre.
Tu peux seulement faire :
{":membre", indVariable} = ... (Utilisable dans une classe) Ou alors {"obj", indVariable}:membre = ...
Extrait de la documentation :
************************** Indirection sur un membre de classe
{ <Expression> }
Détail du paramètre
<Expression> : Chaîne de caractères
Expression permettant d'identifier le membre de la classe. Si le membre est :
global, utilisez la syntaxe suivante : {" :: NomDuMembre"}
n'est pas global, utilisez la syntaxe suivante : {" : NomDuMembre"} ------------------------------------ Indirection sur une structure
Une indirection ne peut pas contenir un accès à une structure ou à une instance de classe. Cependant, il est possible d'utiliser la syntaxe suivante :
{<Variable structure>} : membre **************************
Et a ma connaissance en Windev 9, il n'y a aucun moyen d'explorer les membres d'une classe...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
I.G.LOG
Bonjour,
Tu peux seulement faire :
{":membre", indVariable} = ... (Utilisable dans une classe) Ou alors {"obj", indVariable}:membre = ...
oui, j'avais lu la doc, d'où ma question
Et a ma connaissance en Windev 9, il n'y a aucun moyen d'explorer les membres d'une classe...
Je vais reprendre le programme WD9, il me semblait que ça marchait ! Je vous tient au courrant.
Donc il semblerai qu'il n'y a pas de solution sous WD 10 ??!!!
Cordialement Phil
Bonjour,
Tu peux seulement faire :
{":membre", indVariable} = ... (Utilisable dans une classe)
Ou alors
{"obj", indVariable}:membre = ...
oui, j'avais lu la doc, d'où ma question
Et a ma connaissance en Windev 9, il n'y a aucun moyen d'explorer les
membres d'une classe...
Je vais reprendre le programme WD9, il me semblait que ça marchait !
Je vous tient au courrant.
Donc il semblerai qu'il n'y a pas de solution sous WD 10 ??!!!
{":membre", indVariable} = ... (Utilisable dans une classe) Ou alors {"obj", indVariable}:membre = ...
oui, j'avais lu la doc, d'où ma question
Et a ma connaissance en Windev 9, il n'y a aucun moyen d'explorer les membres d'une classe...
Je vais reprendre le programme WD9, il me semblait que ça marchait ! Je vous tient au courrant.
Donc il semblerai qu'il n'y a pas de solution sous WD 10 ??!!!
Cordialement Phil
Sous Windev 9 ca ne fonctionne pas chez moi...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
I.G.LOG
> Sous Windev 9 ca ne fonctionne pas chez moi...
Cordialement
Il faut que je creuse la question (je dois "remonter" le projet WD9), je vous tiens au courrant. J'essaie par ailleurs la piste de serialise() et deserialise() qui devrait - peut-être - permettre la copie d'objet ?! Connaissez vous un moyen de lister les membres d'un objet ? Dans le code, j'ai la fonction :mNommeChamps() qui incrémente un tableau avec les noms des membres. Si il y avait mieux ?! Encore merci Cordialement Phil
>
Sous Windev 9 ca ne fonctionne pas chez moi...
Cordialement
Il faut que je creuse la question (je dois "remonter" le projet WD9), je
vous tiens au courrant.
J'essaie par ailleurs la piste de serialise() et deserialise() qui devrait -
peut-être - permettre la copie d'objet ?!
Connaissez vous un moyen de lister les membres d'un objet ? Dans le code,
j'ai la fonction :mNommeChamps() qui incrémente un tableau avec les noms des
membres. Si il y avait mieux ?!
Encore merci
Cordialement
Phil
Il faut que je creuse la question (je dois "remonter" le projet WD9), je vous tiens au courrant. J'essaie par ailleurs la piste de serialise() et deserialise() qui devrait - peut-être - permettre la copie d'objet ?! Connaissez vous un moyen de lister les membres d'un objet ? Dans le code, j'ai la fonction :mNommeChamps() qui incrémente un tableau avec les noms des membres. Si il y avait mieux ?! Encore merci Cordialement Phil
Gilles TOURREAU
I.G.LOG a pensé très fort :
Sous Windev 9 ca ne fonctionne pas chez moi...
Cordialement
Il faut que je creuse la question (je dois "remonter" le projet WD9), je vous tiens au courrant. J'essaie par ailleurs la piste de serialise() et deserialise() qui devrait - peut-être - permettre la copie d'objet ?! Connaissez vous un moyen de lister les membres d'un objet ? Dans le code, j'ai la fonction :mNommeChamps() qui incrémente un tableau avec les noms des membres. Si il y avait mieux ?! Encore merci Cordialement Phil
Il n'existe rien en Windev permettant de parcourir le contenu d'une classe...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
I.G.LOG a pensé très fort :
Sous Windev 9 ca ne fonctionne pas chez moi...
Cordialement
Il faut que je creuse la question (je dois "remonter" le projet WD9), je
vous tiens au courrant.
J'essaie par ailleurs la piste de serialise() et deserialise() qui devrait -
peut-être - permettre la copie d'objet ?!
Connaissez vous un moyen de lister les membres d'un objet ? Dans le code,
j'ai la fonction :mNommeChamps() qui incrémente un tableau avec les noms des
membres. Si il y avait mieux ?!
Encore merci
Cordialement
Phil
Il n'existe rien en Windev permettant de parcourir le contenu d'une
classe...
Il faut que je creuse la question (je dois "remonter" le projet WD9), je vous tiens au courrant. J'essaie par ailleurs la piste de serialise() et deserialise() qui devrait - peut-être - permettre la copie d'objet ?! Connaissez vous un moyen de lister les membres d'un objet ? Dans le code, j'ai la fonction :mNommeChamps() qui incrémente un tableau avec les noms des membres. Si il y avait mieux ?! Encore merci Cordialement Phil
Il n'existe rien en Windev permettant de parcourir le contenu d'une classe...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr