[Delphi] Constantes scope ??
Résolu/Fermé
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
-
Modifié par matthoffman le 12/09/2011 à 19:41
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 12 sept. 2011 à 21:08
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 12 sept. 2011 à 21:08
A voir également:
- [Delphi] Constantes scope ??
- Telecharger delphi 7 - Télécharger - Langages
- Bde delphi - Télécharger - Édition & Programmation
- Delphi pause - Forum Delphi
- Numéro de série delphi 7 - Forum Delphi
- Delphi 6 - Forum Delphi
6 réponses
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
12 sept. 2011 à 20:43
12 sept. 2011 à 20:43
Le problème vient du fait que l'unité 'Consts' existe déjà : c'est le nom de l'unité principale des constantes de la vcl !
Change de nom et c'est bon...
Change de nom et c'est bon...
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
12 sept. 2011 à 19:51
12 sept. 2011 à 19:51
Ce que tu veux faire n'est pas spécifique à Delphi, c'est du Pascal pur.
1) Tu dois avoir un begin avant le end même dans une unité.
2) Les noms des fichiers doivent avoir les même noms que les unités (maximum 7 lettres je crois)
1) Tu dois avoir un begin avant le end même dans une unité.
2) Les noms des fichiers doivent avoir les même noms que les unités (maximum 7 lettres je crois)
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
Modifié par matthoffman le 12/09/2011 à 20:11
Modifié par matthoffman le 12/09/2011 à 20:11
Ba re je vois que on se retrouve ^^.
Ouais pour les nom des unités c'est bien la même choses. Le nom du fichier s'appelle bien Consts.pas.
Après pour le begin je pense que tu te trompe. Une unité (en delphi en tout cas, je m'avancerais pas sur le Pascal en général) est de la forme suivante
C'est au sein des procédures et fonctions que tu as besoin du "begin;" et "end;"
J'ai bien sur vérifié cette syntaxe avec les Demos Delphi (qui fonctionnent).
Mais normalement les constants si elles veulent etre utilisées par les autres unit sont déclarées dans la partie déclaration: l'interface.
Ouais pour les nom des unités c'est bien la même choses. Le nom du fichier s'appelle bien Consts.pas.
Après pour le begin je pense que tu te trompe. Une unité (en delphi en tout cas, je m'avancerais pas sur le Pascal en général) est de la forme suivante
unit Nom_Unité; interface implémentation end.
C'est au sein des procédures et fonctions que tu as besoin du "begin;" et "end;"
J'ai bien sur vérifié cette syntaxe avec les Demos Delphi (qui fonctionnent).
Mais normalement les constants si elles veulent etre utilisées par les autres unit sont déclarées dans la partie déclaration: l'interface.
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
Modifié par matthoffman le 12/09/2011 à 20:26
Modifié par matthoffman le 12/09/2011 à 20:26
Je rajouterais même qu'en déplacant les constantes de mon fichier consts.pas dans le fichier principal, le programme fonctionne.
Donc cela vient vraiment de la liaison entre les 2 fichiers.
Mais j'aimerais ne pas tout coder dans un .pas quand même !!!!
Donc cela vient vraiment de la liaison entre les 2 fichiers.
Mais j'aimerais ne pas tout coder dans un .pas quand même !!!!
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
12 sept. 2011 à 20:30
12 sept. 2011 à 20:30
Effectivement on peut enlever le begin dans les unités si on ne s'en sert pas (mais le laisser ne changera rien)
Voici un exemple qui marche :
Voici un exemple qui marche :
unit U1; interface const X = 42; implementation //begin end. //-------------------------------- unit U2; interface uses U1; const Y = X; implementation //begin end. //-------------------------------- program U3; uses U1; begin writeln(X); readln; end. //-------------------------------- program U4; uses U2; begin writeln(Y); readln; end.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
Modifié par matthoffman le 12/09/2011 à 20:53
Modifié par matthoffman le 12/09/2011 à 20:53
Euuuuuh de mieux en mieux la ....
Je sais pas ce qu'il se passe ici mais c'est quoi ce bordel ??
J'arrive a faire tourner le programme U3.
Je rajoute l'unité 2 pour faire tourner le programme U4 ca marche plus.
J'enleve l'unité 2 pour refaire marcher le programme U3 MAIS ca marche plus non plus .... ???????????!!!!!
EDIT: En recréant un autre projet, ce coup ci ca marche.
Seulement je comprends pas pourquoi dans mon projet a moi, il me sort identificateur non déclaré alors que l'uses est bon et que le nom est bon aussi ...
Je sais pas ce qu'il se passe ici mais c'est quoi ce bordel ??
J'arrive a faire tourner le programme U3.
Je rajoute l'unité 2 pour faire tourner le programme U4 ca marche plus.
J'enleve l'unité 2 pour refaire marcher le programme U3 MAIS ca marche plus non plus .... ???????????!!!!!
EDIT: En recréant un autre projet, ce coup ci ca marche.
Seulement je comprends pas pourquoi dans mon projet a moi, il me sort identificateur non déclaré alors que l'uses est bon et que le nom est bon aussi ...
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
Modifié par nicocorico le 12/09/2011 à 21:03
Modifié par nicocorico le 12/09/2011 à 21:03
Comme je disais, pour ton programme, le problème est que l'unité 'Consts' c'est le nom de l'unité principale des constantes de la vcl , donc il faut changer le nom et c'est bon...
Quand au désordre que tu décris, je pense que delphi s'y perd parfois sur trop de changement, et il faut essayer de faire 'projet\ajouter au projet' et spécifier l'unité à utiliser...
Quand au désordre que tu décris, je pense que delphi s'y perd parfois sur trop de changement, et il faut essayer de faire 'projet\ajouter au projet' et spécifier l'unité à utiliser...
12 sept. 2011 à 20:58
Delphi vomi une erreur si tu l'appelles const.pas (ce qui est normal) alors je l'avais nommé consts.pas (et il m'as même pas prévenu !! ^^).
Merci a KX et toi pour votre aide :).
Modifié par nicocorico le 13/09/2011 à 05:28