XE6中项目文件为DPR,查看方法请参考一下以前写过的博文:

Delphi项目构成之项目文件DPR

项目文件DPR

通过主菜单【Project | View Source】,就可以看到缺省的 VCL Forms Application 的项目源代码:

  1. program Project1; {关键字program}
  2.  
  3. uses {uses单元引用}
  4. Vcl.Forms, //新的单元名称VCL限定
  5. Unit1 in 'Unit1.pas' {Form1};
  6. {Form1窗体单元}
  7. {$R *.res}
  8.  
  9. begin
  10. Application.Initialize;
  11. Application.MainFormOnTaskbar := True;
  12. //默认已将MainForm显示于任务栏,而不是之前版本的Application
  13.  
  14. Application.CreateForm(TForm1, Form1);
  15. Application.Run;
  16. end.

单元文件PAS

通过菜单【New | Unit – Delphi】,就可以创建最简单的单元文件,其中的关键字都是必须的,格式如下:

  1. unit Unit2;
  2.  
  3. interface
  4.  
  5. implementation
  6.  
  7. end.

下面这个是内容比较多的单元文件,具体详见代码中的注释:

  1. unit Unit1;
  2.  
  3. interface
  4. (*
  5. interface接口段,声明这个单元的输出标识符,
  6. 即能被其他单元访问的项目
  7. interface开始,implementation结束
  8. *)
  9.  
  10. uses {引用的单元列表,和D7不同是需要加命名空间}
  11. Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  12. Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
  13.  
  14. type
  15. {使用了一个TForm类}
  16. TForm1 = class(TForm)
  17. Button1: TButton;
  18. procedure Button1Click(Sender: TObject);
  19. private
  20. { Private declarations }
  21. public
  22. { Public declarations }
  23. end;
  24.  
  25. TMyArray = array[0..19] of Byte; {声明一个新的类型}
  26.  
  27. const {const关键字用来声明常量}
  28. AppCation = 'Hello World';
  29.  
  30. var
  31. Form1: TForm1;
  32. X: Integer;
  33. MyArray: TMyArray; {Type区域中声明的新类型}
  34.  
  35. procedure DoSomething; {声明一个DoSomething过程}
  36.  
  37. implementation
  38. (*
  39. 执行段以implementation开始,以下一个关键字结束,
  40. 下一个关键字通常就是单元的最后关键字end
  41. 但在有初始化的单元中,下一个关键就是initialization关键字。
  42. *)
  43.  
  44. {$R *.dfm}
  45. uses
  46. System.Contnrs; {implementation执行段的单元引用}
  47.  
  48. var
  49. ObjList: TObjectList;
  50.  
  51. Const
  52. BaseX = 20;
  53. BaseY = 200;
  54.  
  55. procedure DoSomething;
  56. begin
  57. {Code for DoSomething goes here.}
  58. end;
  59.  
  60. procedure TForm1.Button1Click(Sender: TObject);
  61. begin
  62. ShowMessage('Hello World');
  63. end;
  64. (*
  65. initialization单元初始化和finalizaiton单元结束
  66. 用来执行启动和清理的代码,初始化中的任何代码在其单元载入内存时都要被执行,
  67. 结束段中的任何代码在单元从内存中清理前都要被执行。
  68. 可以只有一个初始化段,但不能只有结束段,而没有初始化段。
  69. *)
  70. initialization {单元初始化}
  71. ObjList := TObjectList.Create;
  72.  
  73. finalization {单元结束}
  74. FreeAndNil(ObjList);
  75. end.

窗体文件DFM

在XE6中新建一个VCL Forms Application,按 F6 键启动”IDE Insight”,输入”VCL Forms”即可创建完成。

我们通过 Project Manager 就可以看到Unit1.pas下对应着Unit1.dfm。

在Unit1.pas文件中我们还能找到下面的代码:

其中的代码

  1. {$R *.dfm} { 这句话告诉编译器去连接对应的窗体文件,名称与单元文件相同,但扩展名为.dfm}

DFM文件内容是什么呢?我们通过在Form1窗体设计器上点击鼠标右键菜单,选择【View as Text】来进行查看。如下图:

DFM文件其实就是一个文本文件,记录的都是些非缺省属性设置和窗体上的一些组件属性设置,内容如下:

  1. object Form1: TForm1
  2. Left = 0
  3. Top = 0
  4. Caption = 'Form1'
  5. ClientHeight = 329
  6. ClientWidth = 620
  7. Color = clBtnFace
  8. Font.Charset = DEFAULT_CHARSET
  9. Font.Color = clWindowText
  10. Font.Height = -11
  11. Font.Name = 'Tahoma'
  12. Font.Style = []
  13. OldCreateOrder = False
  14. PixelsPerInch = 96
  15. TextHeight = 13
  16. end

窗体设计中的秘密

1、如果我们在 Form1 上添加一个 Button1 按钮,选中 Button1 按钮后,选择主菜单的【Edit | Cut】剪切,将 Button1 剪切掉,如下图:

2、打开Windows中的记事本,选择粘贴后,实际粘贴的是一个段 Button1 的属性参数,我们仿照 Button1 的格式,增加一个 Button2 按钮,并放置在 Button1 按钮下方,具体参数如下图:

3、将记事本中内容全选后,粘贴在XE6的窗体设计器中,我们成功创建了Button2按钮,如下图:

实际上在DFM文件中也是以TEXT格式记录着所有控件属性值。

XE6入门(二)项目中的文件的更多相关文章

  1. 对Android项目中的文件夹进行解释

    对Android项目中的文件夹进行解释: · src:里面存放的是Activity程序,或者是以后的其他组件,在此文件夹之中建立类的时候一定要注意,包名称不能是一级. · gen:此文件夹中的内容是自 ...

  2. 如何查看.Net源代码vs版本号以及C#项目中各文件的含义

    查看.Net源代码vs版本号以及C#项目中各文件的含义 用记事本打开vs项目的.sln文件. 第2行就是这个源代码包的开发软件vs版本号了 注意了,如果是vs2003的sln文件通常没有这行,可以判断 ...

  3. (转) eclipse项目中.classpath文件详解

    背景:对于java项目中.classpath文件中的相关定义一直不是很了解,有必要进行深入的学习. 1 前言 在使用eclipse或者myeclipse进行Java项目开发的时候,每个project( ...

  4. MyEclipse项目中的文件点击右键Team选项中没有提交到SVN中的选项是怎么回事

    MyEclipse项目中的文件点击右键Team选项中没有提交到SVN中的选项是怎么回事 其实你已经可以百度到很多方法: 例如下面博客提供的 http://www.xuebuyuan.com/95285 ...

  5. Vue项目中的文件/文件夹命名规范

    Vue项目中的文件/文件夹命名规范 0.2262018.09.21 16:01:09字数 820阅读 6979 文件或文件夹的命名遵循以下原则: index.js 或者 index.vue,统一使用小 ...

  6. maven项目中各文件都没有报错,但是项目名称有红叉

             项目报错可以看到Problems(可以在Window--Show View--other--输入Problems找到) 一.可能原因     1.项目中各文件没有报错,但是项目名称中 ...

  7. 解决项目中.a文件的冲突

    .a文件是静态文件,有多个.o文件组合而成的,在ios项目开发中,当引用第三方库的时候,时不时的会碰到诸如库冲突.库包含了某些禁用的API等问题,而这些库往往都被打包成了静态库文件(即 .a文件)来使 ...

  8. android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件

    简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换. 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件. 1.下载工具 xstr ...

  9. [js高手之路]gulp教程-从入门到项目中快速上手使用

    在这之前,我已经分享过一个webpack的全系列,相对于webpack, gulp使用和配置起来非常的简单. gulp是什么? gulp 是基于 node 实现 Web 前端自动化开发的工具,利用它能 ...

  10. C 语言项目中.h文件和.c文件的关系

    http://blog.csdn.net/xingkong_678/article/details/38639847 关于两者以前的关系,要从N年以前说起了~ long long ago,once a ...

随机推荐

  1. Groovy中Closure的this到底指向谁?

    Groovy in Action(中文版)第136页明确说Closure的this指向Closure自己.并且从代码注释处作者也是这样理解的: class Mother{    int field = ...

  2. Android 和 iOS 应用程序开发对比 [持续更新]

    1.Android 用字典模式统一管理应用程序中UI上用到的所有字符串. 比如文本框的默认文本.按钮的名字等等.表现形式:XML文件 Android中 "@string/text_filed ...

  3. C#编程(六十二)---------LINQ标准的查询操作符

    LINQ标准的查询操作符 首先我们来看一下LINQ的操作符,可根据查询操作符的操作”类型”进行分类,如把它们分成投影,限制,排序,联接,分组,串联,聚合,集合,生成,转换,元素,相等,量词,分割等. ...

  4. WordPress主题开发:开启侧边栏小工具功能

    步骤一:在主题的functions.php中,添加一段代码,开启侧边栏功能,代码如下: <?php //参数 $args = array( 'name' => __( '主侧边栏'), ' ...

  5. Asp.Net Core 视图整理(一)

    一.部分视图的使用 注:1.目前在Asp.Net Core2.0中对于部分视图的支持主要使用 Html.Partial()/Html.PartialAsync(); Html.RenderPartia ...

  6. 优化算法动画演示Alec Radford's animations for optimization algorithms

    Alec Radford has created some great animations comparing optimization algorithms SGD, Momentum, NAG, ...

  7. Caffe中deploy.prototxt 和 train_val.prototxt 区别

    之前用deploy.prototxt 还原train_val.prototxt过程中,遇到了坑,所以打算总结一下 本人以熟悉的LeNet网络结构为例子 不同点主要在一前一后,相同点都在中间 train ...

  8. APPLE框架之高效便捷的Repository解决方案

    原文地址:http://perfy315.iteye.com/blog/1460226 Spring Data JPA 转至:http://note.sdo.com/u/855924134/n/P15 ...

  9. JavaScriptSerializer 类

    ylbtech-.Net-Class:JavaScriptSerializer 类 应对 Json.NET 使用序列化和反序列化. 为启用 AJAX 的应用程序提供序列化和反序列化功能. 1.实例返回 ...

  10. Swift3.0:NSURLConnection的使用

    一.介绍 应用中也不必不可少的会使用网络通信,增强客户端和服务器的交互,可以使用NSURLConnection实现http通信. NSURLConnection提供了异步请求和同步请求两种请求方式.同 ...