Ce sujet est résolu.
1 | |||||
Auteur | Messages | ||||
---|---|---|---|---|---|
stracoma | #1 Posté le 21/9/2015 à 23:52:48 | ||||
Apprentissage programmation pour le plaisir | Bonsoir Je veux entamer la poo dans Gambas. Pour créer une classe Prof, j'ai fais un clic Droit sur MMain --> nouveau --> Classe (que je nomme Prof) Dans cette page, j'ai écris:
Puis j'ai écris dans FMain
J'ai un message d'erreur: Dim inattendu dans MMain.module:3 Merci SVP patience avec moi car neurones > 50 ans | ||||
vuott | #2 Posté le 22/9/2015 à 00:24:49 | ||||
Ne cedere ineluctabili possimus |
Bonsoir stracoma, ...ehmmm... avez-vous défini (début et fin) la routine contenant ces lignes ? « Vita non suavis esse potest, nec Mors amara. » | ||||
Reivillo | #3 Posté le 22/9/2015 à 09:49:02 | ||||
C' est ici, et nul part ailleurs. « Et pis c'est tout ! » | Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015) LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr LÀ. Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous... sudo add-apt-repository ppa:gambas-team/gambas3 sudo apt-get update sudo apt-get install gambas3 -y Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016) Pour la Doc, c'est vers là: Documentation Gambas3 FR | ||||
Flachy Joe | #4 Posté le 22/9/2015 à 09:54:20 | ||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Salut, +1 pour vuott Dim n'est pas autorisé en dehors d'une procédure, il faut utiliser Public ou Private à cette place. Et pas d'instruction en dehors d'une procédure non plus : le print causera une erreur... En bref créer une Sub Main() pour contenir ces 2 lignes et définir le module comme module de démarrage. Flachy Joe | ||||
stracoma | #5 Posté le 22/9/2015 à 15:22:56 | ||||
Apprentissage programmation pour le plaisir | Bonjour Y a-il quelqu’un pour me guider car je suis perdu. Dans Prof.class j'ai écris:
Puis j'ai écris dans MMain.module:
ça me donne le message d'erreur: AS manquant dans Prof.class:3. J'aimerais bien qu'on m'écrive le MMain.module et Prof.class, pour comprendre une fois pour toute Merci SVP patience avec moi car neurones > 50 ans | ||||
vuott | #6 Posté le 22/9/2015 à 15:49:30 | ||||
Ne cedere ineluctabili possimus |
« Vita non suavis esse potest, nec Mors amara. » | ||||
linuxos | #7 Posté le 22/9/2015 à 22:42:53 | ||||
Un peu de sel, de poivre et la crevette sera... | Bonjour, En fait l'erreur vient de cette ligne qui ne sert a rien: PUBLIC Class Prof Si c'est un commentaire que tu voulais mettre, il aurait fallu mettre ceci: ' Class Prof Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||||
stracoma | #8 Posté le 22/9/2015 à 23:38:14 | ||||
Apprentissage programmation pour le plaisir | J'ai viré cette ligne " PUBLIC Class Prof " et ça ne marche toujours pas Voir vidéo SVP patience avec moi car neurones > 50 ans | ||||
vuott | #9 Posté le 23/9/2015 à 00:45:56 | ||||
Ne cedere ineluctabili possimus |
in Prof.class:
« Vita non suavis esse potest, nec Mors amara. » | ||||
linuxos | #10 Posté le 23/9/2015 à 01:48:09 | ||||
Un peu de sel, de poivre et la crevette sera... | stracoma, Désolé j'ai lu rapidement et je suis passé a coté. En effet ce que t'as indiqué Vuott est la plus simple façon de faire. A partir de ta Classe Prof.cass tu peux meme en faire un tableau comme suit: DIM tabProf AS NEW Prof[] Exemple d'utilisation: DIM tabProf AS NEW Prof[] DIM newProf AS Prof ' 1er Objet Prof newProf = New Prof newProf.age = 35 newProf.nom = "Bernard" TabProf.Add(Prof) ' 2eme Objet Prof newProf = New Prof newProf.age = 30 newProf.nom = "Jean" TabProf.Add(Prof) Et ainsi de suite.... Bien sur les déclaration de variables DIM sont a faire dans une SUB ou FONCTION PUBLIC SUB toto() ou PUBLIC FUNCTION toto() AS "string ou integer, etc..." Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||||
stracoma | #11 Posté le 23/9/2015 à 15:37:14 | ||||
Apprentissage programmation pour le plaisir | Avec la méthode indiquée par vuott ça marche. Mais je me demande si je peux, en même temps créer et initialiser un objet: Dim prof1 as new Prof("Bernard",35) SVP patience avec moi car neurones > 50 ans | ||||
linuxos | #12 Posté le 23/9/2015 à 23:10:57 | ||||
Un peu de sel, de poivre et la crevette sera... | A priori cela est possible mais je ne vois pas l’intérêt a part t'économiser des lignes de code, mais tu y perds en lisibilité pour relire ton code par la suite a mon avis. De plus, l'empreinte mémoire sera plus grosse car chaque fois que tu instanciera une classe Prof tu dupliquera les variables de Prof.class mais aussi la fonction _NEW() qui est dedans. Si tu créer 3 objets basés sur Prof.class, cela ne changera pas grand chose, mais si tu en créer 10000, alors cela peut être différent. Il faut juste s'en souvenir lors de l'utilisation de la POO. Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||||
stracoma | #13 Posté le 24/9/2015 à 00:09:40 | ||||
Apprentissage programmation pour le plaisir | Ok. merci SVP patience avec moi car neurones > 50 ans | ||||
gambix | #14 Posté le 3/10/2015 à 17:16:06 | ||||
Faire simple ! | Au passage le constructeur s'écrit : PUBLIC Age as INTEGER PUBLIC Nom as String PUBLIC SUB _New(sNom AS STRING, iAge AS INTEGER) Nom = sNom Age = iAge End C'est une procedure speciale qui a donc un underscore. Sinon cette procedure ne sera pas appelée par la fonction NEW. Moins de texte dans une signature c'est agrandir son espace. | ||||
gambix | #15 Posté le 3/10/2015 à 17:31:31 | ||||
Faire simple ! | Tien aussi au passage. Pourquoi tu utilises un formulaire pour tester de la POO. Utilise plutot un module avec une fonction PUBLIC SUB MAIN() que tu rend fichier de démarrage. Ainsi pour ton test le Module MMain.module contiendrait :
Je ne le répèterais jamais assez mais penser a bien nommer vos classes et variables pour facilement identfier le type. http://gambaswiki.org/wiki/doc/naming?l=fr http://gambaswiki.org/wiki/doc/namingconvention?l=fr Et bien sur toues les sources de l'ide Moins de texte dans une signature c'est agrandir son espace. | ||||
1 |