Delphi_02_Delphi程序的结构
一、工程文件
program MultiUnit;
{$APPTYPE CONSOLE}
uses
SysUtils,
Unit1 in 'Unit1.pas';
begin
//引用unit1中的变量,因为是在接口部分定义所以可以引用
strGreet:='Hello world';
//调用unit1中的过程 因为是在接口部分定义所以可以引用
Greeting(strGreet);
//调用unit2中的函数;因为是在接口部分定义所以可以引用
nAdd:=;
nAddfactor:=;
writeln(GetSum(nadd,naddfactor));
{
1、因为pai变量是在unit1单元的实现部分定义的,因此不能被工程文件引用
}
//writeln(10*10*pai);
{
1、 因function GetArea(var r:single):single; 是在unit1单元的实现部分定义的
所以在工程文件中也不能访问
}
//writeln(GetArea(3.0));
{
1、 因为没有在工程文件中引用unit2单元,所以不能引用unit2单元的对象
2、 虽然在unit1单元引用了unit2单元,但是是在实现部分,所以在工程文件中
也不能引用unit2单元的对象。
3、 如果在unit1单元的接口部分引用了unit2单元,则在工程文件中也能引用unit2
单元文件的对象
}
//showUnit2();
readln;
end.
二、单元文件 unit1
{ 单元文件
1、Delphi程序由称为单元的源代码模块构成
2、每个单元保存在一个单独的单元文件 *.pas 文件中,分别进行编译,然后编译后的
单元被链接到程序中
3、单元文件由以下几部分组成:
单元头 unit 关键字表示
接口部分 interface 关键字表示
实现部分 implementation 关键字表示
初始化部分 initialization 关键字表示
结束化部分 finalization
单元的结尾 end. 表示
}
{ 单元头
1、 unit关键字定义单元头,
2、 语法格式为: unit 单元标识符
3、 在其他单元中利用 单元标识符 来表示整个单元
}
unit Unit1;
{ 接口部分
1、 接口部分定义其他单元引用本单元时可以访问本单元那些对象,
接口部分声明的变量、函数、过程的作用域 类似于C语言的全局对象
2、 接口部分由关键字 interface 开始,直到遇到关键字 implementation 结束
3、 接口部分可以
A、使用 uses 子句, uses子句必须紧跟在interface之后
B、利用 var 关键字定义变量
C、声明可以被其他单元调用的过程 procedure 和 函数 function
}
interface
var
strGreet:string;
nAdd:integer;
nAddFactor:integer;
{ 过程
1、 通过关键字 procedure 定义和声明过程
2、 注意声明最后有一个分号
3、 以后具体介绍
}
procedure Greeting(var strGreet:string);
{ 函数
1、 通过关键字 function 定义和声明过程
2、 注意声明最后有一个分号
3、 以后具体介绍
}
function GetSum(var value1,value2:integer):integer;
{ 实现部分
1、 实现部分用来实现单元的代码部分,实现部分主要的代码编辑部分
2、 实现部分用来定义接口部分声明的过程、函数
3、 实现部分利用关键字 implementation 表示开始,直到遇到关键字 initialization
或者 end. 为止
4、 实现部分可以使用
A、uses 子句, 如果使用uses子句,则必须紧跟implementation关键字
B、var 语句定义变量
C、定义在接口部分声明的过程、函数
D、定义只在本单元才能调用的过程、函数
}
implementation
uses
unit2;
var
pai:single=3.1415926;
{ 过程
1、 定义过程的时候必须与在接口部分完全一样,如果声明用来 var 关键字,则在
定义的时候必须用 var 关键字
}
procedure Greeting(var strGreet:string) ;
begin
writeln(strGreet);
end;
{ 函数
1、函数通过函数名返回函数值
}
function GetSum(var value1,value2:integer):integer;
begin
GetSum:=value1 + value2;
end;
function GetArea(var r:single):single;
begin
GetArea := pai * r * r;
end;
procedure showUnit2();
begin
{
1、引用了unit2单元,所以可以引用unit2单元的对象
}
writeln(unit2Var);
end;
end.
三、单元文件 unit2
unit Unit2; interface
var
unit2Var:integer=;
implementation end.
欢迎转载,转载请注明来源。
Delphi_02_Delphi程序的结构的更多相关文章
- ELF Format 笔记(十一)—— 程序头结构
ilocker:关注 Android 安全(新手) QQ: 2597294287 程序头表 (program header table) 是一个结构体数组,数组中的每个结构体元素是一个程序头 (pro ...
- 黑马程序员——JAVA基础之程序控制流结构之判断结构,选择结构
------- android培训.java培训.期待与您交流! ---------- 程序控制流结构:顺序结构:判断结构:选择结构:循环结构. 判断结构:条件表达式无论写成什么样子,只看最终的结构是 ...
- Delphi XE5教程5:程序的结构和语法
内容源自Delphi XE5 UPDATE 2官方帮助<Delphi Reference>,本人水平有限,欢迎各位高人修正相关错误! 也欢迎各位加入到Delphi学习资料汉化中来,有兴趣者 ...
- 【Xamarin挖墙脚系列:Xamarin.IOS的程序的结构】
原文:[Xamarin挖墙脚系列:Xamarin.IOS的程序的结构] 开始熟悉Xamarin在开发IOS的结构!!!!!!! 先看官方 这个是以一个单页面的程序进行讲述的. 1 程序引用的程序集,核 ...
- 【Xamarin挖墙脚系列:典型的业务程序的结构搭建】
原文:[Xamarin挖墙脚系列:典型的业务程序的结构搭建] 其实app就是客户端.在现代的程序中,都是典型的C/S结构.当然,一些离线的小游戏,功能性应用除外,如:电话本,通信录,短信查看等等 这个 ...
- 微信小程序开发01 --- 微信小程序项目结构介绍
一.微信小程序简单介绍: 微信官方介绍微信小程序是一个不需要下载安装就可使用(呵呵,JS代码不用下载吗?展示的UI不用下载吗?)的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用. ...
- 毕业设计预习:VHDL入门知识学习(一) VHDL程序基本结构
VHDL入门知识学习(一) VHDL程序基本结构 简介 VHDL程序基本结构 简介 概念: HDL-Hardware Description Language-硬件描述语言-描述硬件电路的功能.信号连 ...
- Java程序的结构和执行
目录 Java程序的结构 Java程序的执行 source code -- compiler -- class file -- JVM compiler JVM Java语法 数据类型 数据的存储 堆 ...
- Android应用程序项目结构
Android应用程序项目结构 [src]:JAVA源代码目录 [gen]:由系统自动生成的JAVA源码文件,不可修改,只可查看和使用 加载的和依赖的类库 [assets]:本地存储文件的一个文件夹 ...
随机推荐
- python enumerate 用法
A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...
- 【从零开始学BPM,Day2】默认表单开发
[课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...
- WebStorm 2016 最新版激活(activation code方式)
WebStorm 2016 最新版激活(activation code方式) WebStorm activation code WebStorm 最新版本激活方式: 今天下载最新版本的WebStorm ...
- TFS2013 设置签出独占锁
转载自: http://www.cnblogs.com/zhang888/p/4280251.html
- Win10命令提示符(cmd)怎么复制粘贴
在Win10系统里右键开始菜单,选择弹出菜单里的命令提示符,如下图所示: 然后复制要粘贴的文字,例如: echo hovertree.com 把上面的文字复制后,点击命令提示符窗口,然后在命令提示符窗 ...
- VIM教程
vim 的环境设定参数 :set nu :set nonu 就是设定与取消行号啊! :set hlsearch :set nohlsearch hlsearch 就是 ...
- 前端自学路线之js篇
上一篇我们讲了前端切图的学习路线,不知大家有没有收获.今天来聊聊前端工程师的核心技能之——JavaScript.js这门语言看似简单,但要做到入门.熟练以至于架构的程度,还是有一段路要走的,今天就来聊 ...
- EasyPR--开发详解(8)文字定位
今天我们来介绍车牌定位中的一种新方法--文字定位方法(MSER),包括其主要设计思想与实现.接着我们会介绍一下EasyPR v1.5-beta版本中带来的几项改动. 一. 文字定位法 在EasyPR前 ...
- C#委托使用详解(Delegates)
摘要 委托是C#编程一个非常重要的概念,也是一个难点.本文将系统详细讲解委托. 1. 委托是什么? 其实,我一直思考如何讲解委托,才能把委托说得更透彻.说实话,每个人都委托都有不同的见解,因为看问题的 ...
- 白板编程浅谈——Why, What, How
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://lucida.me/blog/whiteboard-coding-demystified/ 这篇文章节选 ...