IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Modifier la valeur d'un attribut [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2009
    Messages : 68
    Points : 56
    Points
    56
    Par défaut Modifier la valeur d'un attribut
    Bonjour,

    J'ai un petit problème de débutant que je n'arrive pas à résoudre.

    Voilà en fait je crée une classe1 qui possède un certain nombre d'attributs dont 2 d'entre eux sont initialisés à 0.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Constructor CVirus.Create (aNom, aCheminImg: string; aVirulence, aTpsGeneration, aResistance1: integer);
    Begin
         fNom:= aNom;
         fResistance1:= aResistance1;
         fVirulence:= aVirulence;
         fTpsGeneration:= aTpsgeneration;
         fCheminImg:= aCheminImg;
         fx:=0;
         fy:=0;
    End;
    Plus tard, dans une autre unité, je voudrais créer un objet de Class1 mais en modifiant les valeurs des attributs que j'ai initialisés à 0.
    J'ai essayé de créer une méthode dans la classe 1 me permettant de récupérer les 2 attributs en question :

    *Dans Classe1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function CVirus.Getx:integer;
    Begin
         Getx:=fx;
    end;
     
    Function CVirus.Gety:integer;
    Begin
         Gety:=fy;
    end;
    *Dans la Classe2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    V:= CVirus.Create((MaBiblio.Objects[k] as CVirus).GetNom,
                                           (MaBiblio.Objects[k] as CVirus).GetCheminImg,
                                           (MaBiblio.Objects[k] as CVirus).GetVirulence,
                                           (MaBiblio.Objects[k] as CVirus).GetTpsGeneration, 
                                           (MaBiblio.Objects[k] as CVirus).GetResistance1);
              (MaBiblio.Objects[k] as CVirus).Getx:= Tableau[t,2];
              (MaBiblio.Objects[k] as CVirus).Gety:= Tableau[t,3];
    C'est sur ces deux dernières lignes que se situe le problème. Les cases de mon tableau contiennent des entiers et je voudrais que les attributs de ma classe prennent pour valeur ces entiers. Mais l'erreur renvoyée est:
    Argument can't be assigned.

    Pouvez-vous m'en dire plus svp !

    Merci d'avance !!!

  2. #2
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    l'erreur viens du fait que tu essais d'affecter une valeur à une fonction.
    Pour pouvoir modifier les valeur des attributs de la classe1, il te faut creer ce qu'on appelle des setter. En effet, les setter sont des methodes d'une classe qui sert à modifier les attributs privés d'une classe par opposition aux getter (par exemple la methode getX() que tu as declaré).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure CVirus.setX(a : integer);
    Begin
         fx:=a;
    end;
     
    procedure CVirus.setY(a : integer);
    Begin
         fy:=a;
    end;
    Il te suffit d'appeler cette methode depuis une autre classe pour modifier les valeurs de ces attribus

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2009
    Messages : 68
    Points : 56
    Points
    56
    Par défaut
    Super merci bcp!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [V8] Modifier la valeur d'un attribut à partir d'une autre classe
    Par othman3535 dans le forum Odoo (ex-OpenERP)
    Réponses: 3
    Dernier message: 15/01/2015, 15h18
  2. [2008R2] Modifier la valeur d'un attribut d'une dimension
    Par samus535 dans le forum SSAS
    Réponses: 0
    Dernier message: 10/11/2011, 16h17
  3. modifier la valeur d'un attribut
    Par el_harrathi dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 07/06/2011, 17h11
  4. modifier la valeur d'un attribut
    Par gentil dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2007, 20h39
  5. modifier la valeur d'un attribut xml
    Par totoche dans le forum ASP
    Réponses: 2
    Dernier message: 13/12/2005, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo