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]:本地存储文件的一个文件夹 ...
随机推荐
- WinForm设置控件焦点focus
winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了. ②Winfor ...
- .NET面试题集锦②(Part 二)
一.前言部分 文中的问题及答案多收集整理自网络,不保证100%准确,还望斟酌采纳. 1.实现产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复. ]; ArrayList my ...
- JavaScript学习笔记(二)——闭包、IIFE、apply、函数与对象
一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div, ...
- Linux 入门之网络配置
查看网络状态 ifconfig 修改网络参数 实验环境centos6.5,其他系统自行百度 ls /etc/sysconfig/network-scripts 显示所有文件, vi /etc/sysc ...
- photoshop:无法完成请求 因为暂存盘已满
今天photoshop打开一个问题,提醒:无法完成请求因为暂存盘已满 不用担心这个问题很好解决可能是你做的图比较大并不需要清理C盘空间 选择:编辑→首选项→暂存盘 设置第一暂存盘为D盘或E盘 总之 第 ...
- 将css和js缓存到localStorage缓存,提高网页响应速度
适用于小站点,这很极致,很快速~~ /** * Created by SevenNight on 2016/9/21 0021. * 插件功能:使用localStorage缓存js和css文件,减少h ...
- 支付宝AR抢红包?前端轻松就破解~
近期阿里搞了各LBS+AR实景的红包玩法,小伙伴们在公司里都玩疯了~ 有时候为了抢一个红包,会跑到另一个地方去拍照,虽然略麻烦,但整体的互动还是很有意思的. 不过对于机智的前端童鞋来说,只需要简单的一 ...
- 任意多边形切割/裁剪(附C#代码实现)
本实现主要参考了发表于2003年<软件学报>的<一个有效的多边形裁剪算法>(刘勇奎,高云,黄有群)这篇论文,所使用的理论与算法大都基于本文,对论文中部分阐述进行了详细解释,并提 ...
- 【完全开源】知乎日报UWP版:项目结构说明、关键源代码解释
目录 说明 项目结构 关键代码 演示视频 说明 上一篇博客将源码放出来了,但是并没有做过多的介绍,所以如果自己硬看可能需要花费很长的时间,尤其这些代码并不是自己写的.项目不算复杂但是也不算简单,这篇文 ...
- 企业IT管理员IE11升级指南【16】—— 使用Compat Inspector快速定位IE兼容性问题
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...