Delphi Project Structure Folder Organization

http://delphi.about.com/od/delphitips2008/qt/project_layout.htm

I've been developing in Delphi for the past 10+ years (from Delphi 1). Every version brings some new features - new controls, new build options, new IDE features.

One question I always ask myself when starting a new Delphi program - a project with two or more applications - is how to best layout all the Delphi files one project is made of? Source code files (PAS) and DFM files (Delphi forms) should go into a source control system. Executable (EXE) should be placed into a separate folder. Third party tools (units) should have their own folders. If I have BPLs or DLLs they also should have their own folder. Resources should be also separated.

 
 

Delphi Project Structure Folder Organisation - Best Practice?

Since with Delphi you can have more than one project in a project group - and each project can have its own set of options where to store various project related files and since I am using source control - here's what my current best practice in Delphi project layout is:

并且,我正在使用 源代码控制系统。

Project Group Folder 
-Common //code used by all project in the group
--DCU
-----Debug
-----Release
--Source*
-----Database
-----GUI
-----Other -Project 1 Folder
---Bin
-----Debug
-----Release
---DCU
-----Debug
-----Release
---Documentation*
---Help*
---GFX*
---Source*
-----Database
-----GUI
-----Other
---Resources* -Project2 Folder
---Bin
-----Debug
-----Release
---DCU
-----Debug
-----Release
---Documentation*
---Help*
---GFX*
---Source*
-----Database
-----GUI
-----Other
---Resources*
-Setup*
--Output

The above layout is an example layout for Delphi project groups. Also note that you might not need all the folders here (for example "\Source\Database" for database related source files; or "Resources" for any resources that get compiled into the final executable) - or that you might want to add more folders :)

Folders that are marked with a star (*) should be stored in a source control system.

那些标记*的文件夹应该保存到 源代码控制系统。

With the above structure you can easily decide what files (folders) should go into a source control system - by their extension.

Some more complex projects might need more complex directory layout - but the one above has proven the best for my Delphi work.

Delphi Project Options

The "Project Options" dialog box (CTRL+SHIFT+F11) lets you set your directory and conditional defines paths for every Delphi project in a project group.

For example:

  • Build Configuration - displays the current named build configuration. There are two default build configurations: Debug and Release.
  • Output directory - specifies where the compiler should put the executable file.
  • Unit output directory - specifies a directory to contain the .dcu (Win32) or .dcuil (.NET) files.

Delphi 项目 结构 文件夹 组织的更多相关文章

  1. Android 项目中文件夹的说明与作用(转)

    (转自:http://blog.csdn.net/goodshot/article/details/11529731) Android 项目中文件夹的作用 1. src:存放所有的*.java源程序. ...

  2. 如何使用vs将现有的项目或者文件夹(尤其是多层目录的)添加到项目中

    困扰我这么久的问题,哎,真心弱爆了! 1.将现有项目或文件夹拷贝到指定目录下 2.解决方案右上有个显示所有文件的按钮 然后选中所有要添加的文件,右击 选择包含到项目中即可

  3. iOS 项目的文件夹结构能看出你的开发经验

    近期有师弟去面试iOS开发,他谈论到,面试官既然问他怎么分文件夹结构的,并且还详细问到每一个子文件夹的文件名称. 文件夹结构确实非常重要.面试官问他这些无疑是想窥探他的开发经验.清晰的文件夹结构,可让 ...

  4. log4j日志输出到web项目指定文件夹

    感谢 eric2500 的这篇文章:http://www.cxyclub.cn/n/27860/ 摘要:尝试将log4j的文件日志输出到web工程制定目录,遇到了很多问题,最终在eric2500的指导 ...

  5. linux 下用renameTo方法修改java web项目中文件夹名称问题

    经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服 ...

  6. js配置文件路径和项目目录文件夹位置的一致性

    在js文件引入的时候注意配置文件的路径是否和项目目录中的文件夹位置一致,如果不一致, 浏览器会指出找不到文件404的情况

  7. Android 项目中文件夹作用(res文件夹详细介绍)

    1. src:存放所有的*.Java源程序. 2. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3. assets:可以存放项目一些较大的资源文件,例如: ...

  8. 关于idea中新建web项目 webapp文件夹没有小蓝点 ,启动服务,访问不到解决方案

    第一步: 选中项目按F4键,找到你的项目. 第二步: 选中项目下的web,如果没有web点击左上角的加号,找到web最下面,添加进去 第三步: 点开type下的节点,出来弹框, 第四步: 点击弹框的选 ...

  9. eclipse如何把多个项目放在文件夹下,用文件夹分开不同的项目

    在Package Explorer顶部的右侧有有机表图标按钮,点击倒三角 Top Level Elements->Working Set.此时就会发现,很多项目会自动纳入一个文件夹,这个文件夹的 ...

随机推荐

  1. P3901 数列找不同

    P3901 数列找不同 题目描述 现有数列 \(A_1,A_2,\cdots,A_N\) ,Q 个询问 \((L_i,R_i)\) , \(A_{Li} ,A_{Li+1},\cdots,A_{Ri} ...

  2. 2016年蓝桥杯B组C/C++省赛(预选赛)试题

    2016年蓝桥杯B组C/C++ 点击查看2016年蓝桥杯B组省赛题目解析(答案) 第一题:煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成 ...

  3. v-pre原样输出&&v-once只加载一次

    html <div id="app"> <div v-pre>{{message1}}</div><!--原样输出--> <b ...

  4. JavaScript权威指南1.概述

    JavaScript: 1.面向对象.解释型(非编译型)的程序设计语言.一种脚本语言 2.松散类型语言.变量不必具有一个明确的类型.对象中的属性名可以映射为任意的属性值 3.原始数据类型:数字.字符串 ...

  5. ajax实现highchart与数据库数据结合完整案例分析(三)---柱状折线图

    作者原创,未经博主允许,不可转载 在前面分析和讲解了用java代码分别实现饼状图和折线图,在工作当中,也会遇到很多用ajax进行异步请求 实现highchart. 先展示一下实现的效果图: 用ajax ...

  6. HDU 6162 Ch's gift(树链剖分+线段树)

    题意: 已知树上的每个节点的值和节点之间的关系建成了一棵树,现在查询节点u到节点v的最短路径上的节点值在l到r之间的节点值的和. 思路: 用树链剖分将树映射到线段树上,线段树上维护3个值,max,mi ...

  7. Jenkins+Ant/maven+Svn实现自动化部署,编译,运行,测试结果自动邮件通知

    Jenkins+Ant+Svn实现自动化部署,编译,运行,测试结果自动邮件通知

  8. 【网络知识】【1】http、tcp/udp、soap的区别

    一句话总结: soap信息可以通过http协议包装后通过tcp或udp传输 参考:https://zhidao.baidu.com/question/617706398106243452.html

  9. 关于在iBatis中配置Oracle以及MySQL 自增字段

    <insert id="insertPerson" parameterClass="person"> <!-- MySQL数据库自增字段的控制 ...

  10. Linux-Ubuntu14.04下mongodb安装部署

    mongo 下载:https://www.mongodb.com/download-center/community?jmp=nav 创建目录,将下载的文件放在如下位置 xxx@ubuntu:/usr ...