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

Delphi Discussion :

bug avec des tableaux de record constants


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut bug avec des tableaux de record constants
    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
      dans le code :
     
    type
    tdirection=record
        offsetLigne:integer;
        offsetColonne:integer;
      end;
     
    const 
      nord:tdirection=(offsetLigne:-1;offsetColonne:0);
      sud:tdirection=(offsetLigne:1;offsetColonne:0);
      ouest:tdirection=(offsetLigne:0;offsetColonne:-1);
      est:tdirection=(offsetLigne:0;offsetColonne:1);
      nord_ouset:tdirection=(offsetLigne:-1;offsetColonne:-1);
      nord_est:tdirection=(offsetLigne:-1;offsetColonne:1);
      sud_ouest:tdirection=(offsetLigne:1;offsetColonne:-1);
      sud_est:tdirection=(offsetLigne:1;offsetColonne:1);
      dir_hrz:array[0..3]of tdirection=(nord,sud,ouest,est);//ligne 90
      dir_diag:array[0..3]of tdirection=(nord_ouest, nord_est,sud_ouest,sud_est);
      dir_tot:array[0..7]of tdirection=(nord,sud,ouest,est,nord_ouest, nord_est,sud_ouest,sud_est);
     
    il me dit : [dcc32 Erreur] Unit2.pas(90): E2029 '(' attendu(e) mais identificateur 'nord' trouvé(e) à la ligne 90, une idée ?

  2. #2
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    à quoi correspond la ligne 90 et que contient la précédente ?
    (je suppose que c'est la ligne 10, mais autant être sûr)

    il y a peu de devins dans le coin

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    L'explication est ici :
    Les constantes typées ne peuvent pas intervenir dans des expressions constantes.
    NB : c'est la ligne 18 qui était la 90ème, comme indiqué en commentaire.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    j'ai mis un commentaire //ligne 90 en commentaire dans le code regarde bien
    merci
    donc il n'y a pas le choix on doit mettre les valeurs brutes, c'est un peu dommage car c'est moins lisible

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Constantes et utilisation de pointeur, profitant du référencement implicite

    Au passage, j'ai un peu amélioré l'aspect de la déclaration même si il y a encore quelques faussetés dans le respect du PascalCase, apprenez à écrire un code plus lisible.
    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
     
    type
      TDirection = record
        offsetLigne: Integer;
        offsetColonne: Integer;
      end;
      PDirection  = ^TDirection;
     
    const
      Nord:  TDirection = (offsetLigne: -1; offsetColonne:  0);
      Sud:   TDirection = (offsetLigne:  1; offsetColonne:  0);
      Ouest: TDirection = (offsetLigne:  0; offsetColonne: -1);
      Est:   TDirection = (offsetLigne:  0; offsetColonne:  1);
      NordOuest: TDirection = (offsetLigne: -1; offsetColonne: -1);
      NordEst:   TDirection = (offsetLigne: -1; offsetColonne:  1);
      SudOuest:  TDirection = (offsetLigne:  1; offsetColonne: -1);
      SudEst:    TDirection = (offsetLigne:  1; offsetColonne:  1);
      DirectionCardinaux: array[0..3] of PDirection = (@Nord, @Sud, @Ouest, @Est);
      DirectionCollateraux : array[0..3] of PDirection = (@NordOuest, @NordEst, @SudOuest, @SudEst);
      DirectionTousPoints: array[0..7] of PDirection = (@Nord, @Sud, @Ouest, @Est, @NordOuest, @NordEst, @SudOuest, @SudEst);
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      D: PDirection;
    begin
      Memo1.Lines.Add('DirectionCardinaux');
      for D in DirectionCardinaux do
        Memo1.Lines.Add(Format('  offsetLigne: %d, offsetColonne: %d', [D.offsetLigne, D.offsetColonne]));
     
      Memo1.Lines.Add('DirectionCollateraux');
      for D in DirectionCollateraux do
        Memo1.Lines.Add(Format('  offsetLigne: %d, offsetColonne: %d', [D.offsetLigne, D.offsetColonne]));
     
      Memo1.Lines.Add('DirectionTousPoints');
      for D in DirectionTousPoints do
        Memo1.Lines.Add(Format('  offsetLigne: %d, offsetColonne: %d', [D.offsetLigne, D.offsetColonne]));
     
     
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    apprenez à écrire un code plus lisible.
    +1

    @ Sylvain255 :

    car un code de plusieurs lignes sans aucun espace pour permettre de visualiser rapidement les constantes, affectation, valeurs : ça pique les yeux ! Et à la fin de la journée : ça donne pas envie de recommencer

    C'est important de prendre de bonnes habitudes

  7. #7
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    NB : c'est la ligne 18 qui était la 90ème, comme indiqué en commentaire.
    je ne vois pas le gris sur fond bleu, mes yeux se focalisent sur le texte en noir, donc autant dire que là, j'risquais pas de la trouver

  8. #8
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par free07 Voir le message
    +1
    Surtout qu'un simple Ctrl+D reformate le source et l'aère un peu.

  9. #9
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par pprem Voir le message
    je ne vois pas le gris sur fond bleu, mes yeux se focalisent sur le texte en noir, donc autant dire que là, j'risquais pas de la trouver
    Ne crois pas que ça m'ait sauté à la figure, ni d'emblée, ni à la première relecture
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    merci à tous

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

Discussions similaires

  1. Faire un fichier avec des tableaux comme constantes
    Par vincent.mbg dans le forum C
    Réponses: 9
    Dernier message: 24/06/2010, 20h09
  2. [WinForms][.NET2.0]Bug avec des contrôles "Generic"
    Par NicolasJolet dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 17/07/2008, 10h22
  3. [Tableaux] Trier des données avec des tableaux
    Par yobogs dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2006, 13h39
  4. [Débutante] - Document Word avec des tableaux
    Par Sachiel31 dans le forum VBA Word
    Réponses: 19
    Dernier message: 19/07/2006, 15h17
  5. Réponses: 8
    Dernier message: 09/03/2006, 17h48

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