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

Delphi项目构成之项目文件DPR

项目文件DPR

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

program Project1;  {关键字program}

uses               {uses单元引用}
Vcl.Forms, //新的单元名称VCL限定
Unit1 in 'Unit1.pas' {Form1};
{Form1窗体单元}
{$R *.res} begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
//默认已将MainForm显示于任务栏,而不是之前版本的Application Application.CreateForm(TForm1, Form1);
Application.Run;
end.

单元文件PAS

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

unit Unit2;

interface

implementation

end.

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

unit Unit1;

interface
(*
interface接口段,声明这个单元的输出标识符,
即能被其他单元访问的项目
以interface开始,implementation结束
*) uses {引用的单元列表,和D7不同是需要加命名空间}
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type
{使用了一个TForm类}
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; TMyArray = array[0..19] of Byte; {声明一个新的类型} const {const关键字用来声明常量}
AppCation = 'Hello World'; var
Form1: TForm1;
X: Integer;
MyArray: TMyArray; {Type区域中声明的新类型} procedure DoSomething; {声明一个DoSomething过程} implementation
(*
执行段以implementation开始,以下一个关键字结束,
下一个关键字通常就是单元的最后关键字end。
但在有初始化的单元中,下一个关键就是initialization关键字。
*) {$R *.dfm}
uses
System.Contnrs; {implementation执行段的单元引用} var
ObjList: TObjectList; Const
BaseX = 20;
BaseY = 200; procedure DoSomething;
begin
{Code for DoSomething goes here.}
end; procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Hello World');
end;
(*
initialization单元初始化和finalizaiton单元结束
用来执行启动和清理的代码,初始化中的任何代码在其单元载入内存时都要被执行,
结束段中的任何代码在单元从内存中清理前都要被执行。
可以只有一个初始化段,但不能只有结束段,而没有初始化段。
*)
initialization {单元初始化}
ObjList := TObjectList.Create; finalization {单元结束}
FreeAndNil(ObjList);
end.

窗体文件DFM

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

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

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

其中的代码

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

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

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

object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 329
ClientWidth = 620
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
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. IDA .edata .rdata .idata .text segments

    .rdata is for const data. It is the read only version of the .data segment. .idata holds the import ...

  2. a标签连接空标签的方法

    在写页面时,想把a标签设置成空链接,方便后面数据的连接可以有几种方法. 1. <a herf=""></a> 这种方法会默认打开本页面,重新刷新一次页面. ...

  3. [Deepin 15] 编译安装 PHP-5.6.30

    先看下历史笔记: Ubuntu 14 编译安装 PHP 5.4.45 + Nginx 1.4.7 + MySQL 5.6.26 笔记 ################################# ...

  4. 《Go语言实战》摘录:6.1 并发 - 并行 与 并发

    6.1 并行 与 并发

  5. WiX: uninstall older version of the application

    I have installer generated by WiX and I want it to ask: "You have already installed this app. D ...

  6. WordPress基础:设置后台语言

    菜单-设置-站点语言

  7. WordPress主题开发:截取标题或内容

    截取可以用wp_trim_words() 用法: <?php $trimmed = wp_trim_words( $text, $num_words = 55, $more = null ); ...

  8. 快速排序原理及Java实现

    1.基本思想: 快速排序是我们之前学习的冒泡排序的升级,他们都属于交换类排序,都是采用不断的比较和移动来实现排序的.快速排序是一种非常高效的排序算法,它的实现,增大了记录的比较和移动的距离,将关键字较 ...

  9. 神盾局特工第一季/全集Agents Of SHIELD迅雷下载

    神盾局特工 Agents of S.H.I.E.L.D. (2013) 本季看点:如果你熟悉Marvel漫画或者看过创造电影票房记录的<复仇者联盟>(The Avengers),你应该对「 ...

  10. 中文代码之Spring Boot集成H2内存数据库

    续前文: 中文代码之Spring Boot添加基本日志, 源码库地址相同. 鉴于此项目中的数据总量不大(即使万条词条也在1MB之内), 当前选择轻量级而且配置简单易于部署的H2内存数据库比较合理. 此 ...