| |
Membre enregistré 10 messages |
|
Posté le 31 août 2023 - 09:47 |
Bonjour, je tente de faire de la POO avec Windev, je débute donc, j'espère ne pas vous déranger pour une bêtise, si c'est le cas veuillez m'en excuser d'avance J'ai créé une classe : cContact :
cContact est une Classe ms_Clé_Contact est une chaîne
Procedure PUBLIQUE Clé_Contact ():chaîne RENVOYER ms_Clé_Contact
Procedure PUBLIQUE Clé_Contact (Valeur) ms_Clé_Contact = Valeur
Dans mon projet, j'ai créé une fenêtre de test avec une zone de saisie (SAI_Test) et un bouton (BTN_Sauver), lorsque je clique sur le bouton :
clMonContact est un cContact clMonContact.Clé_Contact = SAI_Test je reçois le message suivant;(, pourriez-vous me dire pourquoi et surtout comment corriger ? Merci d'avance
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 91 messages |
|
Posté le 31 août 2023 - 10:43 |
bonjour
j'aurais ecrit :
clMonContact.Clé_Contact(SAI_Test) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 182 messages |
|
Posté le 31 août 2023 - 10:58 |
Bonjour, La manière dont tu décrit ta classe est incorrecte, il manque le FIN. Il faut écrire :
CContact est une Classe PRIVÉ m_saCléContact est chaîne FIN
Note : Il est préférable, selon l'utilisation, de déclarer tes membres au minimum en PROTEGE.
@Eric, la syntaxe d'affectation est correcte. Nous sommes dans le cas d'un setter (propriété en écriture)
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 8 messages |
|
Posté le 31 août 2023 - 18:43 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
Posté le 31 août 2023 - 21:19 |
Bonsoir, merci pour votre réponse, c'est bien ce que j'ai fait, désolé j'avaisi oublié d'écrire le "fin" dans mon annonce, mais il était bien là, j'ai ajouté le mot Protégé comme indiqué mais cela ne change rien Et maintenant, je n'arrive même plus à exécuter, il m'affiche : "La propriété Clé_Contact de la classe cContact n'est pas globale, elle ne peut pas être appelée à partir d'une méthode globale ! Alors qu'elle est déclarée PUBLIQUE !? Dans ma classe, il y a ceci : cContact est une Classe PROTÉGÉ ms_Clé_Contact est une chaîne FIN PROCÉDURE Constructeur()
PROCÉDURE PUBLIQUE Clé_Contact():chaîne RENVOYER ms_Clé_Contact
PROCÉDURE PUBLIQUE Clé_Contact(Valeur) ms_Clé_Contact = Valeur
PROCÉDURE Destructeur()
Dans mon code ceci :
clContact est un cContact cContact.Clé_Contact = "TEST" |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 638 messages |
|
Posté le 01 septembre 2023 - 09:35 |
Hello
Possible d'avoir des captures d'écran du code plutôt ? Code de la classe et de ses méthode, Code qui qui génère l'erreur
Ca doit pas être grand chose.Message modifié, 01 septembre 2023 - 09:35 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 287 messages |
|
Posté le 01 septembre 2023 - 10:44 |
Un screenshot de ta classe résoudrait tous tes soucis
-- #DKR |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 291 messages |
|
Posté le 01 septembre 2023 - 11:01 |
Il serait peut-être utile de commencer par suivre le guide d'auto-formation proposé par PC-Soft ...
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
Posté le 01 septembre 2023 - 16:51 |
@Gemini1961, c'est fait |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
Posté le 01 septembre 2023 - 16:54 |
Voici le code la classe
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 291 messages |
|
Posté le 01 septembre 2023 - 17:35 |
@OLI
Votre Code : clContact est un cContact cContact.Clé_Contact = "TEST"
L'erreur est sur la dernière instruction
Sauf erreur de ma part j'aurais tendance à écrire clContact.Clé_Contact = "TEST" et non pas cContact.Clé_Contact = "TEST"
Bien Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 287 messages |
|
Posté le 01 septembre 2023 - 17:43 |
Ah bah voila ! là c'est plus simple
Regarde le nom de ta propriété, elle s'appelle Clé_contact, ton membre protégé s'appelle ms_Clé_Contact. Ta propriété doit avoir le même nom que celui de ton membre sinon ça ne marche pas Renomme ta propriété en ms_Clé_Contact et le tour est joué
-- #DKR |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 182 messages |
|
Posté le 01 septembre 2023 - 18:16 |
404 ERROR a écrit :
Ta propriété doit avoir le même nom que celui de ton membre sinon ça ne marche pas
FAUX. Sous Windev la propriété concernant un membre peut avoir un nom quelconque. D'ailleurs par défaut, Windev préfixe les propriétés avec "p_" et ça fonctionne sans problèmes.
-- Il y a peut être plus simple, mais, ça tourneMessage modifié, 01 septembre 2023 - 18:30 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 344 messages |
|
Posté le 01 septembre 2023 - 19:32 |
Bonjour
J'ai lu vite fait.
Ce qui est sur : - Pour appeler la propriété, il faut l'appeler à partir de l'instance de la classe, pas la classe elle même (sinon la propriété doit être globale) - Globale et Publique ça n'a rien à voir (cf ci-dessus) - On peut donner le nom qu'on veut à une propriété et heureusement
Pour test voici ma déclaration de la classe
Et l'appel des propriétés (dans un bouton pour mon test) :
clTest est CContact
clTest.CléContact = "zzzzzz"
Info(clTest.CléContact)
-- Pascal H. http://phapps.e-monsite.comMessage modifié, 01 septembre 2023 - 19:33 |
| |
| |
| | | |
|
| | |
| |
Posté le 15 septembre 2023 - 06:50 |
Merci à tous pour votre aide et vos propositions. Le problème est maintenant résolu |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 391 messages |
|
Posté le 15 septembre 2023 - 15:33 |
Quelle était la solution ? Celle de Gemini1961 ? hpascal = OLI ?? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 182 messages |
|
Posté le 15 septembre 2023 - 17:17 |
Pucpood a écrit :
Quelle était la solution ? Celle de Gemini1961 ? hpascal = OLI ??
C'était de l'humour. hpascal fait remarquer qu'OLI est mort au pluches avant de préciser quelle solution il avait adopté. C'est malheureusement de plus en plus courrant : Je pleure, je prend, je m'éclipse
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 344 messages |
|
Posté le 16 septembre 2023 - 11:45 |
Voroltinquo a écrit :
Pucpood a écrit : Quelle était la solution ? Celle de Gemini1961 ? hpascal = OLI ??
C'était de l'humour. hpascal fait remarquer qu'OLI est mort au pluches avant de préciser quelle solution il avait adopté. C'est malheureusement de plus en plus courrant : Je pleure, je prend, je m'éclipse
-- Il y a peut être plus simple, mais, ça tourne
Non pas du tout, c'est bien OLI qui a répondu. Il y a un mélange dans les messages ! Il feraient mieux de le revoir ce forum D'ailleurs je ne reçois plus les notifications par mail. Et vous ?
-- Pascal H. http://phapps.e-monsite.comMessage modifié, 16 septembre 2023 - 11:45 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
Posté le 06 janvier 2025 - 07:43 |
Bonjour hpascal,
désolé de ne répondre que maintenant mais j'ai eu quelques soucis de santé ... J'ai tout simplement recréer ma classe mais en prenant la précaution de créer mes membres avant et puis je n'ai plus eu aucun souci. Gardant ce problème en tête, j'ai migré de version et j'utilise depuis peu la version 2024, pour tester j'ai fait la même chose et j'ai eu le même souci ! Je ne comprends pas pourquoi ... mais peu m'importe, je sais comment contourner le problème.
Bonne journée
hpascal a écrit :
Voroltinquo a écrit : Pucpood a écrit : Quelle était la solution ? Celle de Gemini1961 ? hpascal = OLI ??
C'était de l'humour. hpascal fait remarquer qu'OLI est mort au pluches avant de préciser quelle solution il avait adopté. C'est malheureusement de plus en plus courrant : Je pleure, je prend, je m'éclipse
-- Il y a peut être plus simple, mais, ça tourne
Non pas du tout, c'est bien OLI qui a répondu. Il y a un mélange dans les messages ! Il feraient mieux de le revoir ce forum D'ailleurs je ne reçois plus les notifications par mail. Et vous ? -- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |