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 :

Problème de compilation avec "Class" comme nom de propriété [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre régulier
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 79
    Points
    79
    Par défaut Problème de compilation avec "Class" comme nom de propriété
    Bonjour à tous.

    J'ai un probléme de compilation du code ci dessous:
    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
    procedure  GetListWmiClassesWithMethods(const NameSpace:String;Const List :TStrings);
    var
      objWMIService : OLEVariant;
      colItems      : OLEVariant;
      colItem       : OLEVariant;
      oEnum         : IEnumvariant;
      iValue        : LongWord;
    begin
      List.Clear;
      objWMIService := GetWMIObject(FHost,SNameSpace, FUsername, FPassword);
      colItems      := objWMIService.SubclassesOf();
      oEnum         := IUnknown(colItems._NewEnum) as IEnumVariant;
      while oEnum.Next(1, colItem, iValue) = 0 do
       if colItem.Methods_.Count>0 then
        List.Add(colItem.Path_.Class);
    end;
    Lazarus me dit : " Fatal: Syntax error, "identifier" expected but "CLASS" found ".
    C'est apparement du code Delphi, une adaptation du code VB suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set objSWbemService = GetObject("Winmgmts:root\default")
    Set objClass = objSWbemService.Get()
    objClass.Path_.Class = "NewClass"
    (Bon ça fait pas la même chose, mais c'est la preuve que Path_.Class existe bien...)

    Je pense que c'est le compilateur qui n'aime pas ".Class" mais comment contourner le problème ????

    Merci à vous :-)

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour

    On ne sait pas ce que fait ton code, et comme tu ne donnes pas les unités requises, il faudrait du temps pour le rendre compilable.

    List.Add attend un paramètre avec un identificateur de type String.
    Est-ce bien celui de Path_.Class ? Non, car Class est un mot réservé et ne peut être un identificateur.

    Au hasard, Est-ce que ClassName ne serait pas plus approprié ?
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  3. #3
    Membre éclairé

    Homme Profil pro
    Rédacteur technique (retraité)
    Inscrit en
    Octobre 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique (retraité)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 168
    Points : 807
    Points
    807
    Par défaut
    Class est un mot réservé du langage Pascal, si tu est obligé de l'utiliser en tant qu'identificateur a-tu essayé ?


    Le signe & permet d' "escaper" un mot réservé.

  4. #4
    Membre régulier
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 79
    Points
    79
    Par défaut
    VOILA, c'est exactement la réponse a mon pb.
    Maintenant ça compile !
    MERCI BEAUCOUP DomDA91 :-)

    Citation Envoyé par DomDA91 Voir le message
    Class est un mot réservé du langage Pascal, si tu est obligé de l'utiliser en tant qu'identificateur a-tu essayé ?


    Le signe & permet d' "escaper" un mot réservé.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/06/2008, 18h23
  2. Problêmes de compilation sous linux
    Par Micky_du_57 dans le forum GLUT
    Réponses: 4
    Dernier message: 25/05/2007, 20h37
  3. [Flex / Bison] Problème de compilation sous Visual C++
    Par levalp dans le forum Générateurs de compilateur
    Réponses: 1
    Dernier message: 25/07/2006, 15h26
  4. problème de compilation sous XP/Centrino?
    Par RalphH dans le forum C++Builder
    Réponses: 19
    Dernier message: 23/10/2004, 16h12
  5. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52

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