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

Langage Delphi Discussion :

Partie gauche n'est pas affectable.


Sujet :

Langage Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Partie gauche n'est pas affectable.
    Bonjour à tous
    Est-ce que quelq'un peut me dire d'où vient cette erreur?
    J'ai deux unitées l'une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    unit La_Types;
     
    interface
    ...
    type TMatieresActives = array[1..14] of boolean;
     
    end.
    et l'autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    unit Classes_Examen_Moyennes_Annuel;
    interface
     
    uses
        ......., La_Types;
     
    ......
    Private
      FTrim1_Actives:TMatieresActives;
     
    Public
      property Trim1_Actives:TMatieresActives read FTrim1_Actives write FTrim1_Actives;
     
    ........
       Trim1_Actives[1] := true; // ici l'erreur --> La partie gauche n'est pas affectable.
    Lorsque dans une procedure je veux affecter des valeurs aux éléments du tableau, il y a l'erreur de sytaxe "La partie gauche n'est pas affectable".

    Dans l'aide de Delphi cette erreur se produit lorsqu'on essaie de modifier:
    1 - une constante.
    2 - un paramètre constant.
    3 - la valeur renvoyé d'une fonction.

    Trim1_Actives est une propriété en (LECTURE/ECRITURE). Je suis vraiment coincé.
    Aidez-moi et merci d'avance!

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Hum ici il y a conflit entre l'écriture [] pour accéder à un item dans un tableau et l'écriture [] pour accéder à un indice d'une propriété tableau.

    Une déclaration de type array of xxx n'est pas un type acceptable pour définir une propriété donc il faut faire autrement.

    Si tu veux vraiment passer par une propriété alors tu dois faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    type
     
      MaClass = class
      private
       FTrim1_Actives:TMatieresActives;
       function GetTrim1_Actives(Index: Integer): Boolean;
       procedure SetTrim1_Actives(Index: Integer; const Value: Boolean);
      public
       property Trim1_Actives[Index: Integer]: Boolean read GetTrim1_Actives write SetTrim1_Actives;
      end;
     
    implementation
     
    function MaClass.GetTrim1_Actives(Index: Integer): Boolean;
    begin
      Result := FTrim1_Actives[Index];
    end;
     
    procedure MaClass.SetTrim1_Actives(Index: Integer; const Value: Boolean);
    begin
      FTrim1_Actives[Index] := Value;
    end;

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup Aka Guymelef

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    ?

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par Aka Guymelef Voir le message
    Bonjour,

    Hum ici il y a conflit entre l'écriture [] pour accéder à un item dans un tableau et l'écriture [] pour accéder à un indice d'une propriété tableau.

    Une déclaration de type array of xxx n'est pas un type acceptable pour définir une propriété donc il faut faire autrement.
    oui et non

    les éléments du tableaux sont en lecture seule car le setter ne sait pas mettre à jour un élément du tableau, mais tu peux modifier tout le tableau d'un coup

    voici le même cas sur un TPoint

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Déclarations privées }
        FPoint : TPoint;
      public
        { Déclarations publiques }
        property Point: TPoint read FPoint write FPoint;
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.DFM}
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
      p : TPoint;
    begin
    //  Point.x := 1; <- erreur !
      p := Point;
      p.x := 1;
      Point := p;
    end;

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/12/2012, 13h59
  2. la partie gauche n'est pas affectable
    Par butch dans le forum Langage
    Réponses: 6
    Dernier message: 01/11/2011, 23h16
  3. [Batch] %ERRORLEVEL% n'est pas affecté.
    Par SIMMMMM dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 20/08/2009, 14h37
  4. Une partie du code n'est pas exécutée
    Par eddy37fr dans le forum VBA Access
    Réponses: 4
    Dernier message: 31/03/2008, 19h11

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