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 :

Passage d'un code Delphi en Lazarus [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Passage d'un code Delphi en Lazarus
    Bonjour à tous

    Je dois transposer du code Delphi en Lazarus et j'ai quelques difficultés. Le code fonctionne bien en D7, mais ceci ne plait pas à Lazarus :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    type
       PElListInteger = ^ElListInteger;
       ElListInteger = record
          i : integer; 
          ElPrec : PElListInteger;
          ElSuiv : PElListInteger;
       end;
    type
       TListInteger = class
       private
          FirstElement : PElListInteger;
          LastElement : PElListInteger;
          FCount : Integer;
          FSorted : Boolean;
          function AjouteEnFin(Val : integer) : PElListInteger;
          function AjouteEnDebut(Val : integer) : PElListInteger;
          function InsereElement(Val : integer) : PElListInteger;
       protected
       public
          constructor create;
          destructor destroy; override;
          property Count : integer read FCount;
          function Asstring : String;
          function AsStringList(L : TStringList) : TStringList;
          function Add(Val : integer) : PElListInteger;
          function IndexOf(Val : integer) : integer;
          function ValeurAtPos(Pos : integer) : integer;
          function Remove(Val : integer): integer;
          function Delete(Ind : integer):integer;
          procedure Clear;
       published
          property Sorted : Boolean read FSorted write FSorted default False;
       end;
    //  Plus loin il y a ceci
     
    { TListInteger }
     
    function Add(const S: string): Integer; override;
    var
       ElTemp, FuturDeuxiemeElement : PElListInteger;
    begin
       if FirstElement = nil then
          Result := AjouteEnFin(Val)
       else
       begin
          new(ElTemp);
          ElTemp.i := Val;      <===== Et il n'aime pas cet ordre du tout !!!'
     
          FuturDeuxiemeElement := FirstElement;
          ElTemp.ElPrec := nil;
          ElTemp.ElSuiv := FuturDeuxiemeElement;
          FuturDeuxiemeElement.ElPrec :=ElTemp;
          FirstElement :=ElTemp;
     
          FCount:=FCount+1;
          Result:=ElTemp;
       end;
    end;
    L'ordre ElTemp.i ne passe pas : Illegal qualifier

    Je ne vois pas pourquoi

    Merci pour votre aide

  2. #2
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 518
    Points : 10 263
    Points
    10 263
    Par défaut
    Essaies elTemp^.i

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 202
    Points : 41 443
    Points
    41 443
    Billets dans le blog
    63
    Par défaut
    et val est déclaré où ?

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    Citation Envoyé par JP.NUAGE Voir le message

    L'ordre ElTemp.i ne passe pas : Illegal qualifier

    Je ne vois pas pourquoi
    D'accord avec Jon Shannow mais est-ce que tu compiles en mode Delphi qui te fait profiter entre autres du dréférencement automatique des pointeurs ?

    Si tu convertis un projet Delphi, il est plus qu'utile de passer en mode Delphi. A tout hasard, consulte http://www.freepascal.org/docs-html/...#progse62.html.

  5. #5
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Pour répondre à SergioMaster, l'ordre function est mauvais, j'ai dû supprimer des lignes qui étaient inutiles, vu que la function Add n'a pas d'erreur et j'en ai trop supprimer. L'ordre qui devrait figurer est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function TListInteger.AjouteEnDebut(Val: integer): PElListInteger;
    et là, Val est bien renseigné

    Pour répondre à e-nc, je vais essayer sa suggestion, bien sûr. Mais déjà avec la proposition de Shannow, je n'ai plus de message d'erreur.

  6. #6
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 360
    Points : 568
    Points
    568
    Billets dans le blog
    2
    Par défaut {$MODE DELPHI}{$H+}
    Mettre

    {$MODE DELPHI}{$H+}

    en tête d'unité.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/08/2013, 16h06
  2. Passage d'un code AutoIt vers Delphi (pour une dll MMB)
    Par Frencher dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 20/09/2012, 18h45
  3. [Lazarus] Passage de Delphi 7 à Lazarus
    Par Propre dans le forum Lazarus
    Réponses: 2
    Dernier message: 17/12/2009, 12h12
  4. Delphi versus Lazarus
    Par fabien25 dans le forum EDI
    Réponses: 1
    Dernier message: 20/06/2005, 12h44
  5. Passage de variables de DELPHI vers RAVE
    Par e120650 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/02/2005, 12h17

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