ZT: Delphi编程规范1.0.0.0 (yckxzjj )
编写目的
本规范定义为程序在编写过程中涉及到的程序文件和编码风格。本规范以 Delphi 语言为标准制定.
项目文件的组织
在Delphi中,按照项目为单位来组织程序文件。在一个典型的项目中包括:
项目文件(.DRP文件)
含有工程主程序的Pascal源代码;
单元文件(.PAS文件)
项目中每个窗体的Pascal源文件,包含该窗体的所有声明和过程(包括时间处理过程);
窗体文件(.DFM文件)
含有一个窗体的设计属性的二进制文件,每个窗体的.DFM文件与.PAS文件相互对应;
资源文件(.RES文件)
编译的二进制资源文件,被链接到应用程序的可执行文件中;
项目选项文件(.DOF文件)
存储了Project|Options菜单命令所设置的项目选项;
桌面设置文件(.DSK文件)
存储了Tools|Options菜单命令所设置的桌面选项;
包文件(.DPK/.BPL文件)
用于共享组件、类、数据和代码的文件。源文件为.DPK文件,编译后为.BPL文件;
常量定义
内容:
逻辑值的定义;
常数值的定义;
错误码的定义;
格式:一个定义占一行。如下:
Const <常量> : 类型 = 值; //注释
说明:
使用 Const 语句来声明用于代替文字值的常数。
示例:Const C_SQL:string='select CH_USERER_ID from T_CD_USER'; //查询用户ID
Const C_PI:real =3.1415926; //圆周率
结构类型定义
内容:结构类型定义
格式:
Type
<类型名> //结构说明注释
<变量名1> : 变量类型; //变量说明注释
<变量名2> : 变量类型; //变量说明注释
…
End ;
说明:
<类型名>是以大写字母开头的字符串。结构定义中定义变量类型的语句从第二行第五列开始。
示例:
type
TableList=record //系统树单元类型定义
InID: Integer; //单元编号
Name: string; //单元名称
PID: string; //上一级单元名称
PT: PTableList; //指向下一单元类型的指针
end;
程序风格
程序风格规定了每个语句的定位规则及程序中的注释。
函数(function)/过程(procedure)风格
<function/procedure> Name (变量: 变量类型[,…]);//函数/过程说明
var
变量1:变量类型;//变量说明
变量2:变量类型;//变量说明
…
begin
语句;
语句;
……
end ;
注: 变量声明、语句均从第三列写起,如有缩进,每次缩进两列,并与相对应语句对齐。
语句风格
说明:
在程序体中通常最多每十行有一个段落功能说明;
规范使用各种语句;
语句中有缩进是以二列为单位。
变量定义语句
var
var_name : <数据类型>;
赋值语句
var_name: = <表达式>;
条件语句
if 条件 then //注释
begin
语句;
…
end
else if 条件 then //注释
begin
语句;
...
end
else //注释
语句;
注:如果执行语句只有一句,可省略begin、end语句。
循环语句
//循环功能注释
for counter := start to end do
begin
[语句];
…
end;
//循环功能注释
while [condition] do
begin
[语句];
…
end;
//循环功能注释
repeat
[语句];
…
until [condition]
开关语句
//开关功能说明
case <表达示> of
<值1>:[语句1];
<值2>:[语句2];
…
<值n>: [语句n]
end;
注释行
在程序代码单元文件顶端必须拥有本单元文件“模块说明”及“单元说明”注释。
对于常量、结构类型、函数/过程、自定义变量、代码段功能块、关键语句等有含义的代码部
分,必须有注释行进行详细说明。
注释行可在需说明部分行后以“//XXXXXXXX”方式添加,也可在需说明部分行上
以“{XXXXXXXX}”方式添加多行或以“//XXXXXXXX”方式添加一行。
文件及窗体命名
含义 类名 命名格式
工程文件 Program(.DPR) XXXXX
单元 Unit(PAS) uXXXXX
窗体 Form.Name(.DFM) XXXXXFrm
数据模块 DataModule XXXXXDM
单元头定义,添加到每个单元的前面。
{*****************************************************
单元名称:
功能描述:
作者:
软件名称:
版本:
公司名称:刀剑如梦软件创作室
***************************************************** }
软件版本号格式定义:
软件中采用如下的版本号格式:X.X.X.X
例如:可发布的程序完成后将版本号标为”1.0.0.0”
第一位:版本号。注:软件又重大的改进后形成的版本。
第二位:维护号。注:已有的版本的基础上修改了某些错误形成的版本。
第三位:补丁号。注:当程序修改某些错误,未形成新的维护号时,用补丁号。
第四位:修正号。注:当出现紧急程序错误时,修改后程序用作标识,不作为发布程序的版本号。
ZT: Delphi编程规范1.0.0.0 (yckxzjj )相关推荐
- 一公司C#编程规范v2.0(转)
C#编程规范 Version 2.0 目录 第一章 概述 4 规范制定原则 4 术语定义 4 Pascal 大小写 4 Camel 大小写 4 文件 ...
- C# 语言规范_版本5.0 (第10章 类)
1. 类 类是一种数据结构,它可以包含数据成员(常量和字段).函数成员(方法.属性.事件.索引器.运算符.实例构造函数.静态构造函数和析构函数)以及嵌套类型.类类型支持继承,继承是一种机制,它使派生类 ...
- 选择 Delphi 2007 ( CodeGear Delphi 2007 for Win32 Version 11.0.2837.9583 ) 的理由
选择 Delphi 2007 ( CodeGear Delphi 2007 for Win32 Version 11.0.2837.9583 ) 的理由 我不喜欢用InstallRite的全自动安装包 ...
- python编辑器编程猫_编程猫Python编辑器 Mac版0.4.0 下载 - 51下载网
Tags: 编程工具 51下载网提供Python编辑器<编程猫Python编辑器 Mac版>0.4.0 下载,该软件为免费软件,文件大小为55.2 MB,推荐指数3颗星,作为国产软件中的顶 ...
- scratch(图形化编程工具)3.28.0版本更新了!
点击上方蓝字关注我们 开工大吉,2022年目标是永久会员在服务200人,达到300永久会员规模. 我的永久会员购买链接: 永久会员包含很多资料,电子资料我都放在QQ群的群资料中,放百度网盘容易丢失和被 ...
- 操作系统多重引导规范:Multiboot Specification 0.6.93(中文版)
Multiboot规范 本文定义了Multiboot规范--提议中的引导过程标准.本文是此规范的0.6.93版. 1. Multiboot规范简介本章描述了一些关于Multiboot规范的粗略的信息. ...
- Delphi代码格式化工具(DelForExp) v2.6.0
DELPHI程序错误解决: Unable to invoke Code Completion due to errors in source code 程序还能正常运行,但是程序不能自动提示了,要一个 ...
- PBOC规范(2.0-3.0)对照表
1 数据方面 TAG PBOC2.0 ...
- C/C++编程学习 - 第4周 ④ 0与1
题目链接 题目描述 小蒜上了他的第一堂计算机概论,老师说计算机内部是由很多的小开关来组成:1 代表开.0 代表关.于是聪明的小蒜便了解了,原来我们平常使用电灯开关就是把 1 变成 0.0 变成 1 嘛 ...
最新文章
- emacs python环境配置
- 面试者被公司粗暴对待,进门讲了三句话被赶出:包括一句你好
- 几种开源SIP协议栈对比OPAL,VOCAL,sipX,ReSIProcate,oSIP
- stm32 交换机芯片_基于STM32的全链路语音交互 - stm32/stm8 - 电子工程世界
- 牛客 - 动物森友会(二分+最大流)
- 2021-10-25 Vue异步操作
- 数组指针 vs 指针数组
- Leetcode669.Trim a Binary Search Tree修建二叉树
- 【转】Java集合间的相互转换
- Android Studio官方文档之添加URL和App索引支持
- Sa-token 之 SaManager
- Formality笔记
- OH~My Godness ~!被点到了...
- 赛普拉斯CYpress,初接触之一电磁感应触摸按键demo
- Javascript 设计模式之外观模式【讲师辅导】-曾亮-专题视频课程
- NCAE(全国工业和信息化应用人才考试 )-- 服务外包 JAVA 软件开发复习整理(二)
- Latch-up初认识
- 1071 小赌怡情 (15分)
- TPS61088RHLR升压芯片
- awk中引用shell变量执行替换的脚本
热门文章
- 关于ckeditor的配置
- mysql单库tps_简单计算mysql 的QPS,TPS
- Thinkphp3.2在IIS中使用ISAPI_Rewrite去除index.php
- 工作中学习,学习中成长
- Android SqlLite数据库的创建、增、删、改、查、使用事务
- 接口——从事物的共同点出发
- 头文件malloc.h:函数 mallopt()的选项
- KB/MB/GB/TB之间的换算是乘以1000还是1024?
- [读后感] 20170630 产品经理米衙的感悟
- 简书留言收费可行性评估