Organisation projet delphi

furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008 - 8 déc. 2004 à 19:59
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 - 14 déc. 2004 à 10:39
bonjour,
je viens de récupérer un projet delphi (12 .dfm et environ 40 .pas)
Tout est à plat.
Peut-on mettre les fichiers .pas dans des répertoires différents (dfm et .pas associé dans un réperoire GUI, répertoire math pour tous les .pas liés à des fonctions mathématiques, ...)?

Peut-on stocker les fichiers générées (.dcu) dans un répertoire compil?

Merci d'avance

21 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
9 déc. 2004 à 09:08
Honnetement je n'ai jamais essayé de séparer les différents fichiers delphi. Je ne suis pas sur que ce soit réalisable mais surtout je ne vois pas trop le gain.
Pourquoi souhaiterais tu séparés tous ces fichiers?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
9 déc. 2004 à 09:36
L'objectif est de classer par domaine les différents types de fichiers.
Cela permet d'avoir une meilleure lisibilité de l'application et propose un découpage fonctionnel sous forme d'arborescence.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
9 déc. 2004 à 09:44
Ouais je l'avais bien compris comme ca. En attendant ta réponse j'ai regarder un peu delphi et je pense que c'est réalisable.

Pour cela tu vas dans le menu "Projet" puis "Options" (ou sinon tu fais un click droit sur ton project dans le gestionnaire de project puis "Options").
Une fenetre à onglet s'ouvre et tu vas dans l'onglet "Répertoires/conditions" puis tu fais F1 et tu auras cette aide et je pense que ça devrait repondre a tes attentes.

Utilisez la page Répertoires/Conditions de la boîte de dialogue Options du projet, pour spécifier l'emplacement des fichiers nécessaires à la compilation, la liaison et la distribution de vos programmes. En outre, vous pouvez spécifier dans cette page les définitions du compilateur. Cliquez sur la flèche, à droite de chaque boîte de saisie, pour choisir un répertoire ou un symbole déjà entré.

Répertoires

Destination Spécifie le répertoire où le compilateur placera les unités compilées et le fichier exécutable.
Destination de l'unité Spécifie un répertoire distinct pour contenir les fichiers .dcu. Notez que les fichiers .dcp peuvent être placés ailleurs en définissant le chemin d'accès au répertoire de destination DCP, dans la page Bibliothèque de la boîte de dialogue Outils|Options d'environnement.
Chemin de recherche Spécifie l'emplacement des fichiers source. Seuls les fichiers qui se trouvent dans le chemin de recherche du compilateur ou dans le chemin de recherche des bibliothèques seront inclus dans le build. Si vous essayez de construire votre projet avec un fichier absent du chemin de recherche, vous provoquerez une erreur de compilation. Vous devez saisir le chemin d'accès complet.
Si vous cochez Utiliser DCUs de débogage (Projet|Options|page Compilateur), le chemin des DCU débogage (Outils|Options du débogueur|page Général) est ajouté au début du chemin de recherche.

Sources débogage Chemin de recherche pour le débogueur. Le débogueur utilise les chemins d'accès définis par défaut par le compilateur. Si la structure des répertoires a été modifiée depuis la dernière compilation, vous pouvez entrer ici un chemin d'accès permettant d'inclure un fichier dans la session de débogage.
Destination BPL Spécifie le répertoire où le compilateur place les fichiers de paquets générés (fichiers bpl).
Destination DCP Spécifie le répertoire où votre fichier .dcp est placé lors de la compilation. Si cette option n'est pas précisée, le répertoire de sortie dcp global spécifié dans la page Bibliothèque de la boîte de dialogue Outils|Options d'environnement sera utilisé.

Conseils pour les chemins de recherche

Suivez les conseils ci-dessous lorsque vous entrez les noms des répertoires dans la boîte de saisie Chemin de recherche :

Vous pouvez spécifier plusieurs répertoires en les séparant par des points-virgules (;).
Les espaces avant et après le point-virgule sont autorisés mais non nécessaires.
Les chemins relatifs et absolus sont autorisés, y compris les chemins relatifs à la position en cours.

Conditionnels

Définitions Symboles référencés dans les directives de compilation conditionnelles. Plusieurs définitions peuvent être séparées par des points-virgules.

Alias

Alias d'unités Utile pour la compatibilité avec les versions précédentes. Spécifie les noms d'alias d'unités dont le nom a été modifié ou d'unités ayant été regroupées. Le format est =<nouvelle_unité>. Vous pouvez séparer plusieurs alias par des points-virgules. La valeur par défaut est WinTypes=Windows;WinProcs=Windows.Default.

Défaut

Cochez Défaut pour que les options de projet en cours afin que chaque nouveau projet créé les utilise.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
9 déc. 2004 à 18:09
Pour classer des PAS et DFM, il suffit de modifier leur emplacement via le fichier projet d'extension DPR. Idée:
uses Form1 in '..\projet\thème\wwww\form1.pas' {TForm1};

===========
Validez les réponses si ok...

ViewVite : HTML - ZIP
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
13 déc. 2004 à 09:37
j'ai modifié l'arborescence de mes fichiers sources de la façon suivante :
c:\MonProjet\MonProjet.dpr (j'ai rajouté pour chaque fichier le
chemin d'accès aux units
(Ex: matrice in '.\Source\Maths\matrice.pas')
c:\MonProjet\include : contient les fichiers .inc utilisés
c:\MonProjet\bin : contient l'exe généré
c:\MonProjet\debug : contient toutes les dcu
c:\MonProjet\Source\Maths : contient les .pas liés aux fonctionnalités mathématiques
c:\MonProjet\Source\GUI : contient les .dfm et .pas des interfaces
c:\MonProjet\Source\DataBase : contient les .pas liés aux accès BD
c:\MonProjet\Source\Modele : contient les .pas liés aux fonctionnalités du coeur de l'appli
c:\MonProjet\Images : contient les images utilisées dans l'appli
c:\MonProjet\Data : données de l'appli

Dans le module Options du projet, dans l'onglet répertoire/Conditions, j'ai mis les chemins suivants :
Destination : .\bin
Destination de l'unité : .\Debug
Chemin de recherche : $(DELPHI)\Lib\Debug;.\Source\GUI;.\Source\Maths;.\Source\Modele;.\Source\DataBase;.\include;.\debug

sources de débogage :
$(DELPHI)Lib\Debug;.\Source\GUI;.\Source\Maths;.\Source\Modele;.\Source\DataBase;.\include;.\debug

************************
La compilation s'effectue sans problème.
En dehors de delphi, l'exécutable foncitonne parfaitement.
Sous deplhi, lorsque je clique sur exécuter, j'ai le message suivant :(une boîte de dialogue s'ouvre)

Erreur système. Code : 2.
Le fichier spécifié est introuvable

Quelqu'un peut-il m'aider sur ce problème?

Merci d'avance
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
13 déc. 2004 à 09:42
A quel endroit as tu placé le .exe?

Normalement il doit se trouver pres du .dpr sinon pour le recréer au lieu de faire executer tu fais construire le projet.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
13 déc. 2004 à 09:50
L'exe est créé dans le répertoire bin. (c:\MonProjet\bin\appli.exe ainsi appli.map)
Le fichier .dpr est dans la racine (c:\MonProjet\appli.dpr)

Quand je fais construire le projet, tout se passe bien. L'exe est bien généré dans le répertoire bin.
Mais à l'exécution tjrs le même message d'erreur.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
13 déc. 2004 à 10:01
Alors là franchement je n'ai pas d'idée.

Lance ton programme en pas à pas au démarrage pour voir à quel endroit il bugue pour essayer de savoir de quel fichier il parle.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
13 déc. 2004 à 10:14
si j'ouvre le projet, et que je lance tout de suite l'exécution sous Delphi, cela marche.
Si j'ouvre un fichier .pas lié à un .dfm et stocké dans le répertoire .\GUI, puis je demande l'exécution, j'ai le message d'errreur.
J'ai mis un point d'arrêt au niveau de Application.Initialize;

Le message d'erreur est déjà apparu.

Je ne vois plus dans quelle direction chercher.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
13 déc. 2004 à 10:18
Alors essaye en fesant "Executer" puis "pas a pas" si ca ne marche pas et que tu as l'erreur de suite fais nous un copier coller du .dpr pour voir si on trouve quelque chose.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
13 déc. 2004 à 10:35
Je n'accède même pas au mode pas à pas.

Ci-joint le fichier projet :
program Simulateur;

uses
Forms,
Unit_simul in 'Source\GUI\Unit_simul.pas' {Form1},
Ecran_rec in 'Source\GUI\ecran_rec.pas' {Creation},
validite_bob in 'Source\GUI\validite_bob.pas' {SecondForm},
aide_ecran_geo in 'Source\GUI\aide_ecran_geo.pas' {SecondForm2},
aide_ecran_donnees in 'Source\GUI\aide_ecran_donnees.pas' {SecondForm3},
print in 'Source\GUI\print.pas' {Impress},
BAF_pilot0 in 'Source\GUI\BAF_pilot0.pas' {Pilot},
Archivage_rec in 'Source\GUI\Archivage_rec.pas' {Archivage},
Baf_visu in 'Source\GUI\Baf_visu.pas' {Visu},
PasswordBOX in 'Source\GUI\PasswordBOX.pas',
baf_cf1 in 'Source\Modele\baf_cf1.pas',
baf_cn1 in 'Source\Modele\baf_cn1.pas',
baf_cr21 in 'Source\Modele\baf_cr21.pas',
baf_eq1 in 'Source\Modele\baf_eq1.pas',
baf_ex1 in 'Source\Modele\baf_ex1.pas',
baf_ext1 in 'Source\Modele\baf_ext1.pas',
baf_gl1 in 'Source\Modele\baf_gl1.pas',
baf_in1 in 'Source\Modele\baf_in1.pas',
baf_it1 in 'Source\Modele\baf_it1.pas',
baf_ld1 in 'Source\Modele\baf_ld1.pas',
baf_mn1 in 'Source\Modele\Baf_mn1.pas',
baf_opt1 in 'Source\Modele\Baf_opt1.pas',
baf_pr1 in 'Source\Modele\baf_pr1.pas',
baf_riv1 in 'Source\Modele\baf_riv1.pas',
baf_tb1 in 'Source\Modele\Baf_tb1.pas',
baf_vd1 in 'Source\Modele\baf_vd1.pas',
cre2_gl1 in 'Source\Modele\cre2_gl1.pas',
off_gl1 in 'Source\Modele\off_gl1.pas',
Resimul in 'Source\Modele\Resimul.pas',
DB1 in 'Source\DataBase\DB1.pas',
baf_an1 in 'Source\DataBase\baf_an1.pas',
CreaDat in 'Source\DataBase\CreaDat.pas',
matrice in 'Source\Maths\matrice.pas',
MathMC in 'Source\Maths\MathMC.pas';

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TCreation, Creation);
Application.CreateForm(TSecondForm, SecondForm);
Application.CreateForm(TSecondForm2, SecondForm2);
Application.CreateForm(TSecondForm3, SecondForm3);
Application.CreateForm(TImpress, Impress);
Application.CreateForm(TPilot, Pilot);
Application.CreateForm(TArchivage, Archivage);
Application.CreateForm(TVisu, Visu);
Application.Run;
end.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
13 déc. 2004 à 10:41
Je suis désolé mais je ne vois vraiment pas d'ou cela peut provenir ???

Et je dois t'avouer que sans la totalité du codes sources je ne peux pas grand chose pour toi.
Si tu veux je peux te donner mon adresse email pour que tu m'envois tes sources et je jetterai un coup d'oeil. Mais je comprends que pour une question de confiance et de confidentilité tu ne veuilles pas. Mais c'est tout ce que je peux te proposer.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
13 déc. 2004 à 10:50
J'ai une piste qui peut peut-être éclairer quelqu'un.
J'ouvre mon projet et j'exécute : tout est OK.
Je fais ensuite ouvrir, fichier et je vais dans le répertoire source puis Gui puis je sélectionne un fichier .pas associé à un .dfm.
Si je lance la compilation puis l'exécution, j'ai le message d'erreur.
Si je refais fichier, ouvrir et que j'ouvre un fichier qui se trouve au niveau de la racine du projet puis je lance compilaiton puis l'exécution, cela marche.

J'ai l'impression que lors de l'exécution, il se base sur le path du dernier fichier ouvert.

De plus, comme la plupart des chemins de mon appli sont en relatif (./Source/Gui,...) en non en absolu, le problème vient peut-être de là.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
13 déc. 2004 à 12:11
De plus, si je lance l'exécutable et si je mets des points d'arrêt dans l'application, je ne m'arrête jamais.
J'ai l'impression que le mode debug n'existe pas !!

Dans le menu exécuter, tout est grisé (mode pas à pas,...)

une idée?
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
13 déc. 2004 à 12:42
Si tu lances l'executable directement depuis l'explorateur par exemple c'est normal que l'application ne s'arrete pas. Si tu veux la lancée en debugage tu dois la lancer depuis delphi.

Effectivement c'est bizarre qu'une fois ton projet ouvert que tout soit grisée dans la menu executer. Comment ouvre tu ton projet? Tu double click bien sur le .dpr?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
13 déc. 2004 à 16:20
J'ouvre delphi puis je fais fichier ouvrir un projet.

Si je double-clique sur le fichier .dpr depuis l'explorateur windows, delphi se lance et j'ai les 2 messages suivants :

violation d'accès à l'adresse 002C3FCE dans le module 'vcl70.bpl'.
violation d'accès à l'adresse 00509370 dans le module 'coreide70.bpl'.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
13 déc. 2004 à 16:50
Je viens d'ouvrir mon projet et j'ai lancé la commande Ctrl +O+O

Cela a rajouté en entête du projet les directives de compilation.
J'ai fait ensuite construire le projet puis je suis sorti de Delphi.

Je double clic ensuite sur le projet. Je n'ai plus qu'une erreur :
violation d'accès à l'adresse 002C3FCE dans le module 'vcl70.bpl'.

Le projet est bien ouvert dans delphi.
Le mode debug est toujours inactif.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
13 déc. 2004 à 17:09
J'ai le même message d'erreur lorsque je lance delphi seul.
0
furax13 Messages postés 90 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 24 avril 2008
14 déc. 2004 à 08:53
J'ai téléchargé sur le site developpez.com l'exemple permettant la conversion d'un bmp en jpg (http://nono40.developpez.com/sources/zips/source0009.zip)

J'ai le même problème. Je n'arrive pas à avoir le mode debug.
Je pense que c'est dans la configuration de delphi.

Quels sont les fichiers de delphi à regarder?

Merci d'avance
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
14 déc. 2004 à 09:26
Hello,

Effectivement je viens de télécharger le source de nono40 et je n'ai pas de souci pour le compilé.
Tous ce que je peux te proposer car là je ne vois pas d'ou ca peut venir et bien ca serait de m'envoyer par email à cette adresse jean-marc.pires@fr.abb.com les impressions écrans des onglets de la boite à options de delphi afin de voir les différences entre ta config et la mienne.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
Rejoignez-nous