2022年程序员代码编写标准指南汇总_第1页
2022年程序员代码编写标准指南汇总_第2页
2022年程序员代码编写标准指南汇总_第3页
2022年程序员代码编写标准指南汇总_第4页
2022年程序员代码编写标准指南汇总_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Delphi 6 程序员代码编写原则指南一、前言二、通用源代码格式规则2.1 缩格2.2 页边空格2.3 BeginEnd 配对2.4 代码文献中通用符号含义三、Object Pascal3.1 括号3.2 保存字和核心字3.3 过程和函数(例程) 3.3.1 命名/格式化 3.3.2 形式参数 格式化 命名 参数的排序 常量参数 名称的冲突3.4 变量 3.4.1 变量的命名和格式 3.4.2 局部变量 3.4.3 全局变量的使用3.5 类型 3.5.1 大写商定 浮点指针类型 枚举类型 变数和ole变数类型 3.5.2 构造类型 数组类型 记录类型3.6 语句 3.6.1 if 语句 3

2、.6.2 case 语句 一般性话题 格式 3.6.3 while 语句 3.6.4 for 语句 3.6.5 repeat 语句 3.6.6 with 语句 一般话题 格式3.7 构造异常解决 3.7.1 一般话题 3.7.2 tryfinally的使用 3.7.3 tryexcept的使用 3.7.4 tryexceptelse的使用3.8 类类型 3.8.1 命名和格式 3.8.2 域 命名/格式 可视化 3.8.3 措施 命名/格式 使用静态的措施 使用虚拟/动态的措施 使用抽象的措施 属性存取措施 3.8.4 属性 命名/格式 使用存取的措施四、文献4.1 工程文献 4.1.1 命名

3、4.2 窗体文献 4.2.1 命名4.3 数据模板文献 4.3.1 命名4.4 远端数据模板文献 4.4.1 命名4.5 Unit文献 4.5.1 通用Unit构造 unit的名字 uses子句 interface部分 implementation部分 initialization部分 finalization部分 4.5.2 窗体单元 命名 4.5.3 数据模板单元 命名 4.5.4 一般目的单元 命名 4.5.5 构件单元 命名4.6 文献头五、窗体和数据模板5.1 窗体 5.1.1 窗体类型命名原则 5.1.2 窗体实例命名原则 5.1.3 自动创立窗体 5.1.4 模式窗体实例化函数5

4、.2 数据模板 5.2.1 数据模板命名原则 5.2.2 数据模板实例命名原则六、包6.1 使用运营包和设计包的比较6.2 文献命名原则七、构件7.1 顾客自定义构件7.2 构件单元7.3 使用注册单元7.4 构件实例命名商定7.5 构件的前缀7.6 Standard 页7.7 Additional 页7.8 Win32 页7.9 System 页7.10 Internet 页7.11 Data Access 页7.12 Data Controls 页7.13 Decision Cube 页7.14 Qreport 页7.15 Dialogs 页7.16 Win3.1 页7.17 Sample

5、s 页7.18 ActiveX 页7.19 Midas 页7.20 ADO 页7.21 InterBase 页7.22 InternetExpress 页7.23 FastNet 页一、前言本文档详述了使用JAVA进行编程的代码编写原则。本文档的目的在于论述一种措施,通过该措施,开发小组可以在她们所编写的代码中保持一贯的风格。这样做的目的是使在开发小组中的每一种程序员都可以明白其她程序员的代码。这有助于提高代码编写的可读性和使用的一贯性。二、通用源代码格式规则2.1 缩格tab字符代表4个空格宽度。代码的每一层次缩进量为一种tab(4个空格)2.2 页边空格页边空格会被设立成80字符宽。一般,

6、源码不会超过这个边界,但这个方针会有某些弹性。不管与否有也许,那些超过到另一行的语句会在一种逗号或其她操作符之后与前面的语句相连。当一种语句被打断相连时,它应比本来的那一行语句缩进两个字符。2.3代码文献中通用符号含义/ 四个斜杠代表目前有未实现的内容,相称于占位符三、Object 3.1 括号不要在括号与括号之间的字符中间留下空格。下面的例子示范了错误的与对的地使用括号中的空格: main( Aparameter ); /错误 main(Aparameter); /对的3.3函数(例程)3.3.1 命名/格式化变量的命名命名应尽量体现变量的含义,大小写遵循Java的驼峰规则。一种对的格式的变

7、量名称: public userName;一种不合适的变量名称: public UserName;例程的名称应当同它的内容相符。一种会导致某个行为的例程应以动词开头。例如: procedure FormatHardDrive;一种用于设立输入参数的例程应以单词set作为前缀,例如: procedure SetUserName;一种用来接受某个值的例程应以单词get作为前缀,例如: procedure GetUserName : string;3.3.2 形式参数 格式化如果有的话,相似类型的形参应合并在一种语句中: procedure Foo(Param1, Param2, Param3 :

8、Integer; Param4 : string); 命名所有形参的名字应是十分符合它们所代表的意义,特别是应当以传送到例程中的标志符的名称为基本。一种好的参数名称应以字符a为前缀 例如: procedure SomeProc(aUserName : string; aUserAge : integer);“a”前缀按商定表达该参数的名称是与类类型中的一种属性或域的名称相相应的。 参数的排序下面的形参的顺序重点阐明了注册者调用商定调用的好处。 最常用的参数应放在第一位,其他的参数应按从左到右的顺序排列。 输入参数列表应放在输出参数列表的左边。 将通用的参数放在特殊参数的左边,例如: proce

9、dure SomeProc(aPlanet, aContinent, aCountry, aState, aCity) 排序有也许有些例外,例如事件的解决。类型为TObject的Sender参数常常放在第一位。 常量参数当一种参数为记录型、数组类型、ShortString、或接口类型并且在例程中不被变化时,这些参数应做上常量标记。这样做会让编译器更加有效率的产生有关这些不变化的参数的代码。而例程中此外某些非变参数也可常量来传送。尽管这样做没有产生任何效果和提高效率,这将会给调用例程的使用者提供更多的信息。 名称的冲突当使用拥有两个名称相似的例程的两个单元时,如果你调用该例程时,在uses子句中

10、排在背面的单元中的例程将会被调用。为理解决这种“在uses子句上的模糊”冲突,要在调用该例程时写上有关的单元的前缀,例如: SysUtils.FindClose(SR);或 Windows.FindClose(Handle);3.4 变量3.4.1 变量的命名和格式变量的命名应以使用它们的目的相符循环控制变量应采用一种单独的字符作为名字,例如 I,J,或K,也可以采用更加故意义的名字,例如 UserIndex。逻辑变量的名字应能充足体现精确的真或假的意思。3.4.2 局部变量一种过程中的局部变量应遵循所有其他变量的使用和命名商定。临时变量的取名应合理。局部变量应加上前缀tmp,如tmpUser

11、Name。如果必须的话,在一进入例程就应初始化局部变量。局部的AnsiString变量会自动初始化为一种空的字符串。局部接口和派分接口类型变量将会自动初始化为nil,并且局部变数和ole变数类型变量会自动初始化为Unassigned3.4.3 全局变量的使用使用全局变量是不推荐的。但是,在某些时候还是必须使用,并且它们也只应在必须使用的时候才使用。在这种时候,你应努力只在一段上下文范畴内使用全局变量。例如,一种全局变量只应在一种单元的implemntation部分内是全局的。如果打算在多种单元类使用全局数据,你应将它们移到一种公共的单元中然后被其他所有单元使用。全局变量可以在var子句中直接初

12、始化为一种值。记住,所有的全局数据会自动初始化为0,因此不要将全局变量初始化为一种“空”值例如 0、nil、Unassigned、等等。这样做的一种理由是由于零初始化的全局数据在exe文献中不会占据任何空间。零初始化数据被存储在一种虚拟的数据段,它在应用程序启动后被分派在一段内存中。非零初始化的全局数据在硬盘的exe文献占用空间。全局变量命名应加上前缀glb,如glbUserName。3.5 类型3.5.1 大写商定如果类型的名字是保存字,那么它应所有小写。Win32 API类型一般所有大写,并且你必须遵循在Windows.pas或其她API单元中的具体类型名称的商定。对于其她变量名字,第一种

13、字母应为大写,而其她字母应错落有致。下面是某些例子: var MyString : string; /保存字 WindowHandle : HWND; /Win32 API 类型 I : Integer; /在System单元中引进的类型标记符 浮点指针类型不推荐使用Real类型,由于它的存在只是为了向前兼容初期的Pascal代码。在一般状况下用Double来实现浮点指针的需要。并且,Double对解决器和总线而言是做了最优化解决的,它也是IEEE中定义的原则数据格式。只有当需要的范畴超过Double所定义的范畴时才使用Extended。Extended是intel定义的类型且在Java中不支

14、持。只有当浮点指针变量的实际字节大小有其意义时才使用Single。(例如当使用另一种语言的DLLs时)。 枚举类型枚举类型的名字需符合使用该类型的目的。该类型的名字需以字符T为前缀,以表白这是一种类型。枚举类型中的标记符列表必须涉及两个或三个字符的前缀来相应于该枚举类型的名字 例如: TSongType = (stRock, stClassical, stCountry, stAlternative, stHeavyMetal, stRB);一种枚举类型的实例的名字应与不要前缀的枚举类型(SongType)相似,除非有更好的因素来赋予该变量更特殊的名字,例如:FavoriteSongType1

15、,FavoriteSongType2 等等。 变数和ole变数类型一般不建议使用变数和Ole变数类型。但在只有运营时刻才干懂得数据类型的程序中必须使用该类型,这种情形多余目前COM和数据库开发中。Ole变数使用在以COM为基本的编程中例如自动化和ActiveX控制,而变数使用在非COM的编程中,这是由于变数可以十分有效地存储本地Delphi字符串(同一种字符串变量同样),但Ole变数会将所有的字符串转换为Ole字符串(WideChar 字符串)并且并不实例运算 它们永远拷贝。3.5.2 构造类型 数组类型数组类型的名字需符合它们使用的目的。该类型的名字必须加此前缀T。如果须声明该数组类型的指针

16、,那么该指针需加此前缀P并且应立即声明在该数组声明的前面。例如: type PCycleArray = TCycleArray; TCycleArray = array1100 of integer;在实际应用中,数组的变量实例的名称应是其类型的名字去掉前缀T。 记录类型记录类型的名字应符合使用它们的目的。其类型的声明应加此前缀T。如果要声明该记录类型的指针,就应加此前缀P并且应紧靠在类型声明的前面声明。例如: type PEmployee = TEmployee; TEmployee = record EmployeeName : string; EmployeeRate : Double;

17、 end;3.6 语句3.6.1 if 语句在if/then/else语句中最常发生的行为应放在then子句中,而其他发生也许性较小的行为应放在else子句中。尽量避免使用嵌套的if语句,在这种情形下应用多种if语句来判断多种也许。不要使用if嵌套超过五级深度。应使代码编写得更加清晰、明了。不要在if语句中使用不必要的圆括号。如果在if语句中有多种条件需测试,这些条件应按计算强度由少到多的顺序从左到右排列。这样做能使编译器在编译代码时获得布尔估算逻辑的捷径,从而使你的代码获得最佳的优化。举例来说,如果条件1快过条件2,而条件2快过条件3,那么在if语句中的排列应是: if 条件1 and 条件

18、2 and 条件3 then3.6.2 case 语句 一般性话题在一种case语句中的各个独立的单元应以数字或字母顺序排列。每一种case单元的动作行为应保持简朴而不应当超过四到五行代码。如果所要执行的动作过于复杂应采用独立的过程或函数。Case语句中的else子句只有当需要缺省行为或解决错误时才使用。 格式case语句应遵循其他构造的缩格和命名商定。3.6.3 while 语句在一种while语句中不建议使用Exit过程来跳出循环,尽量仅使用循环条件来跳出循环。在一种while循环中所用的初始化代码应紧靠在进入while循环前面浮现而不要被其他不有关的语句隔开。任何结束后的解决应在循环之后

19、立即进行。3.6.4 for 语句for语句只有当循环次数已知的状况下才干取代while语句使用。3.6.5 repeat 语句repeat语句的使用同while语句同样,并且遵循同样的通用方针。3.6.6 with 语句 一般话题with语句应节省使用,并且带有大量的警告。避免过度使用with语句并且在with语句中小心使用多种对象、记录等等。例如: with Record1, Record2 do这些事情会使程序员感到困惑并难以发现问题所在。 格式with 语句遵循本文档所阐明的命名商定和缩格的格式规则。3.7 构造异常解决3.7.1 一般话题异常的解决大量地使用在错误纠正和资源保护方面。

20、这就是说一旦资源被分派,一种tryfinally必需加以使用来保证该资源被对的的释放。这种异常的保护也是指在一种单元的initializition/finalization或一种对象的constructor/destructor中进行资源的分派和释放。设计过程中应尽量减少通过返回值判断成果,应通过触发异常模式解决错误。3.7.2 tryfinally的使用任何情形下,每一次的分派都应跟随一种tryfinally。举例来说,下面的代码会导致也许的错误: SomeClass1 := TSomeClass.Create; SomeClass2 := TSomeClass.Create; try do

21、 some code finally SomeClass1.Free; SomeClass2.Free; end;一种更安全更合适的分派过程应是: SomeClass1 := TSomeClass.Create; try SomeClass2 := TsomeClass.Create; try do some code finally SomeClass2.Free; end; finally SomeClass1.Free; end;3.7.3 tryexcept的使用只有当在异常被触发而你想执行某些任务时才使用tryexcept。一般,你没有必要为了只是简朴地在屏幕上显示一种错误信息而使用

22、tryexcept语句,由于这会被Application对象自动执行。如果你想在except子句中执行完某些任务之后调用缺省的异常解决,使用raise来重新触发异常到下一种句柄。3.7.4 tryexceptelse的使用tryexcept中的else子句不建议使用,由于它会打断所有的异常涉及那些你没有准备的异常。3.8 类类型3.8.1 命名和格式类类型的名称应符合使用它们的目的。类型名字应加此前缀T以表白这是一种类型的定义 例如:type TCustomer = class(TObject)类型的实例一般是没有前缀T的类型的名字 例如:var Customer :TCustomer;注意:

23、查阅“构件类型的命名原则”来获得更多有关构件命名的信息。3.8.2 域 命名/格式类的域名遵循与变量标记符同样的商定除了它们应以F为前缀,来表白这是一种域的名称。 可视化所有的域都必需是私有的。想在类的范畴之外存取域得通过属性来使用。3.8.3 措施 命名/格式措施的命名应遵循本文档中有关过程和函数的商定论述。 使用静态的措施如果使用一种静态的措施,那么该措施就不能被该类的后裔类所继承。 使用虚拟/动态的措施如果你打算该类的措施能被后裔的类所继承就得使用虚拟的措施。只有在该措施有多种继承时(直接的或间接的)才使用动态的措施。例如,一种类类型涉及一种可继承的措施,而100个后裔类要继承这种措施,

24、那么这个措施就会动态地产生为100个后裔类使用的内存。 使用抽象的措施如果在一种类中使用抽象的措施,该类就不能被创立。只有在那些永远不会被创立的类中使用抽象的措施。 属性存取措施所有存取类的措施都只能出目前类的private或protected部分。属性存取措施的命名应遵循过程和函数的商定规则。读取存取措施(措施读取器)必需以单词Get为前缀。写入存取措施(措施写入器)必需以单词Set为前缀。措施写入器的参数的名字应为Value,并且它的类型应是它所操作的属性的类型。例如: TSomeClass = class(TObject) private FsomeField: Integer; pro

25、tected function GetSomeField: Integer; procedure SetSomeField(Value : Integer); public property SomeField : Integer read GetSomeField write SetSomeField; end;3.8.4 属性 命名/格式属性如果是表达为一种私有域的存取器的话,那么它的名字应是它们所操作的域的名字除去解释符F。属性的名字应是名词,不是动词。属性表达的是数据,而措施表达的是行为。数组类型的名称应为复数。一般状况下属性的名称应为单数。 使用存取的措施尽管没有规定,但还是建议尽量

26、少地为一种表达私有域的属性而使用写入存取措施。四、文献4.1 工程文献4.1.1 命名工程文献应取个描述性的名字。例如,错误管理器 的工程名字是:Bugs.dpr。一种有关系统信息的程序的名字就应象 SysInfo.dpr。4.2 窗体文献4.2.1 命名一种窗体文献的取名应可以描述使用该窗体的目的,并加后来缀Frm。例如,一种“有关”的窗体的文献名应是AboutFrm.dpr。主窗体的文献名应是MainFrm.dpr。如果一种工程中除了窗体文献和单元文献外没有其他类型文献,背面的Frm后缀也可以不用,下文所述其他文献类型仍然。4.3 数据模板文献4.3.1 命名数据模板的取名应能表达使用该数

27、据模板的目的,它的名称应加以两个字符的后缀DM。例如,自定义数据模板的文献名字应为CustomersDM.dfm。4.4 远端数据模板文献4.4.1 命名远端数据模板的取名应能表达使用该远端数据模板的目的,它的名称应加以三个字符的后缀RDM。例如,自定义远端数据模板的文献名字应为CustomersRDM.dfm。4.5 Unit文献4.5.1 通用Unit构造 unit的名字Unit文献应取一种可描述性的名字。例如,涉及应用程序主窗体的单元应叫做MainFrm.pas。 uses子句在interface部分的uses子句应涉及在interface部分中的代码所需要的单元。去掉那些Delphi可

28、以自动加入到程序中的单元。在implementation部分的uses子句应只涉及在implementation部分中的代码所需要的单元的名字。去掉不必要的单元。 interface部分interface部分应涉及只那些其他单元所需要存取类型的定义、变量、过程/函数的预定义等等。否则,就应放在implementation部分定义。 implementation部分implementation部分应涉及那些只在本单元中私用的类型定义、变量、过程/函数定义等等。 initialization部分不要在initialization 部分放入耗时长的代码,这将使程序的第一种界面浮现得比较缓慢。 fin

29、alization部分在这里要保证释放你在Initialization部分所分派的任何资源。4.5.2 窗体单元 命名一种窗体的单元文献应拥有与它所相应的窗体文献同样的名称。例如,“有关”窗体的单元名称应为 FrmAbout.pas,而主窗体的单元名称应为FrmMain.pas。4.5.3 数据模板单元 命名一种数据模板的单元文献应拥有与它所相应的数据模板文献同样的名称。例如,一种自定义数据模板单元的名称应为DMCustomers.pas。4.5.4 一般目的单元 命名一般目的单元的取名应符合使用该单元的目的。例如,一种实用程序单元取名为BugUtilities.pas。一种涉及全局变量的单元

30、取名为CustomerGlobals.pas。注意,该单元的名字不能与它的工程中所使用的所有包中的单元的名字相似。不赞成使用一般的或通用的单元名字。4.5.5 构件单元 命名构件单元应放在独立的目录,以将它们同定义构件组或构件集合的单元辨别开来。它们要永远同工程在不同的目录。单元名字应同它们的内容相符。注意:查阅“顾客定义的构件”部分来获得更多有关构件命名原则的信息。4.6 文献头建议在所有源文献、工程文献、单元等等中使用信息化文献头。一种良好的文献头应涉及如下信息: 版权 著作的年、月、日作者 用途五、窗体和数据模板5.1 窗体5.1.1 窗体类型命名原则窗体类型的取名应能体现使用该窗体的目

31、的。类型定义应加此前缀T。前缀背面跟随着描述性的名字。最后,应加以Form后缀来描述名字。例如,一种“有关”的窗体的类型的名字应为: TAboutForm = class(TForm);主窗体的定义为: TMainForm = class(TForm);一种顾客接入窗体的名字应象: TCustomerEntryForm = class(TForm);5.1.2 窗体实例命名原则窗体实例应是没有带前缀T的相应类的名字。例如,相应于前面窗体类型而言,其实例的名字应为: 类型名称 实例名称 TAboutForm AboutForm TMainForm MainForm TCustomerEntryF

32、orm CustomerEntryForm5.1.3 自动创立窗体只有主窗体可以是自动创立的除非有其他更好的理由不这样做。所有其他的窗体必需从工程选项对话框中的自动创立列表中移走。查阅如下部分来获得更多的信息。5.1.4 模式窗体实例化函数所有的窗体单元都应涉及一种窗体实例化函数,该函数用来创立、设立、模式地显示窗体,并释放窗体。该函数应返回窗体的模式成果。该函数要传递的参数应遵循本文档指定的“参数传递”原则。通过这种方式封装的函数性有助于代码的再运用和维护。该窗体的变量要从单元中移走,并再窗体实例的函数中进行本地式地定义。注意,这就意味着该窗体必需从工程/选项对话框中的自动创立列表中剔除。参

33、照本文档背面的“自动创立窗体”。例如,下面的单元展示了再GetUserData窗体中的一种函数。* 顾客登录窗口 * * Designer : 作者名 Original Place : * Create Date : /4/4 Now Version : 1.2 * Modification Time : /4/11 * *=* unit UserData; interface useswindows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls; type TUserDataForm 这个窗

34、体对象用于获取顾客信息输入,进而检查顾客权限edtUserName 接受顾客名称,能自动切换至中文输入法(输入法从系统配备获取) TUserDataForm = class(TForm) edtUserName : TEdit; edtUserID : TEdit; private Private declarations public Public declarations end; function GetUserData(var aUserName : String; var aUserID : Integer) : Word; implementation $R *.DFM funct

35、ion GetUserData输入aUserName 顾客名称aUserID - 顾客标记号 返回值0 成功1 无此顾客名2 其她错误边界条件aUserID范畴 110000异常 exceptionNoUser exceptionNoUserID function GetUserData(var aUserName : String; var aUserID : Integer) : word; var UserDataForm : TUserDataForm; begin UserDataForm := TUserDataForm.Create(Application); try UserD

36、ataForm.Caption := Getting User Data; Result := UserDataForm.ShowModal; if (Result = mrOK) then begin aUserName := UserDataForm.edtUserName.Text; aUserID := StrToInt(UserDataForm.edtUserID.Text); end; finally UserDataForm.Free; end; end; end.5.2 数据模板5.2.1 数据模板命名原则数据模板的取名要符合使用该数据模板的目的。类型的定义应加此前缀T,背面紧

37、接着描述性的名字,最后要加后来缀单词“DataModule”。例如,一种自定义的数据模板有时候应当象: TCustomerDataModule = class(TDataModule)一种命令式的数据模板的名字应象: TOrdersDataModule = class(TDataModule)5.2.2 数据模板实例命名原则数据模板实例的名称应是相应不带前缀T的类型的名称。例如,对于前面的窗体类型而言,其实例的名称应为: 类型名称 实例名称 TCustomerDataModule CustomerDataModule TOrdersDataModule OrdersDataModule六、包6

38、.1 使用运营包和设计包的比较运营时刻的包应只涉及其他构件包所规定的单元或构件。此外,涉及属性/构件编辑器和其他只为设计的代码应放入到设计时刻包中。注册单元应放在设计包中。6.2 文献命名原则包的名称应根据下面的例子:“iiilibvv.pkg” 设计时刻包“iiistdvv.pkg” 运营时刻包字符“iii”表达一种3字符标记前缀。这个前缀用来表白公司、个人或其他有标记意义的实体。如jm0字符“vv”表达为该包想要相应Delphi某个版本的包的版本号。注意,包的名字中涉及“lib”或“std”的意思是表白这是一种设计时刻包还是一种运营时刻包。如果既是设计时刻包又是运营时刻包,该文献的命名是同

39、上面同样的,例如,名称应为:jm0Lib40.pkg 设计时刻包jm0Std40.pkg 运营时刻包七、构件7.1 顾客自定义构件在原则构件中命名出来的构件的名称同在“类类型”部分定义中的同样定义成一种类类型,不同的是它们有一种3字符的批示前缀,这个前缀可以表达公司、个人或其他实体。例如,一种时钟构件的名称定义为: Tjm0Clock = class(TComponent)注意,那三个前缀字符是小写的。7.2 构件单元构件单元应只涉及一种重要的构件,一种重要的构件是指出目前构件栏中的构件。重要构件的辅助构件/对象应放入到同一种单元中。7.3 使用注册单元构件的注册过程应从构件自身的单元中剔除,

40、并放入到一种独立的单元中。这个注册单元可以用来注册任何构件、属性编辑器、构件编辑器、专家器等。构件的注册只应在设计时刻包中进行,注册单元应涉及在设计时刻包中而不应放在运营时刻包中。推荐使用的注册单元的名称是:XxxReg.pas上面的3个前缀字符“Xxx”用来表达一种公司、个人或任何其他的实体。例如,注册单元的名称应为 jm0Reg.pas。7.4 构件实例命名商定所有的构件都应取个描述性的名称。由Delphi创立的缺省名的构件不会被遗弃。在设计构件类型时应设计一种小写的前缀。使用前缀而不使用后缀的因素是在搜寻时,在对象检查器和代码摸索器中搜寻构件的名字比搜寻构件的类型更容易实现。7.5 构件

41、的前缀如下构件的前缀可以用来设计Delphi 6中的原则构件。在此列表中加入了第三方构件的前缀。由于这些前缀不好记,因此也可采用比较长的构件命名措施,而忽视一下内容,如OkButton、CancelButton、StartDateTimePicker,即背面是构件的类型,前面是构件的名称,这种命名措施也是Borland的原则命名措施;对于同一类型的构件,如TButton、TSpeedButton、TBitBtn可以用同样的后缀Button;除了在代码中不会设计的界面构面,如Label、Panel等,永远不要用一大堆的Button1、Button2等Delphi默认的名称。7.6 Standar

42、d页前缀 构件fm TFramemm TMainMenupm TPopupMenummi TMainMenuItempmi TPopupMenuItemlbl TLabeledt TEditmem TMemobtn TButtoncb TCheckBoxrb TRadioBoxlb TListBoxcb TComboBoxscb TScrollBargb TGroupBoxrg TRadioGrouppnl TPanelal TActionList7.7 Additional页bbtn TBitBtnsb TSpeedButtonme TMaskEditsg TStringGriddg TDr

43、awGridimg TImageshp TShapebvl TBevelsbx TScrollBoxclb TCheckListboxspl TSplitterstx TstaticTextcb TcontrolBarae TApplicationEventscht TChart7.8 Win32页tbc TTabControlpgc TPageControlil TImageListre TRichEditthr TTrackBarprb TProgressBarud TUpDownhk THotKeyani TAnimatedtp TDateTimePickertv TTreeViewlv

44、 TListViewhdr TheaderControlstb TStatusBartlb TToolBarclb TcoolBarps TPageScroller7.9 System页tm TTimerpb TPaintBoxmp TMediaPlayerolec TOleContainerddcc TDDEClientItemddci TDDEClientItemddsc TDDEServerConvddsi TDDEServerItem7.10 Internet页csk TClientSocketssk TServerSocketwbd TWebDispatcherpp TPagePro

45、ducertp TQueryTableProducerdstp TDataSetTableProducerdspp TDataSetPageProducerwb TWebBrowser11 Data Access页前缀 构件ds TDataSourcetbl TTableqry TQuerysp TStoredProcdb TDataBasessn TSessionbm TBatchMoveusql TUpdateSQLntbl TNestedTable7.12 Data Controls页dbg TDBGriddbn TDBNavigatordbt TDBTextdbe TDBEditdbm

46、 TDBMemodbi TDBImagedblb TDBListBoxdbcb TDBComboBoxdbch TDBCheckBoxdbrg TDBRadioGroupdbll TDBLookupListBoxdblc TDBLookupComboBoxdbre TDBRichEditdbcg TDBCtrlGriddbch TDBChart7.13 Decision Cube页dcb TDecisionCubedcq TDecisionQuerydcs TDecisionSourcedcp TDecisionPivotdcg TDecisionGriddcgr TDecisionGraph7.14 QReport页注:建议不要使用。报表用reportbuilderqr TQuickReportqrsd TQRSubDetailqrb TQRBandqrcb TQRChildBandqrg TQRGroupqrl TQRLabelqrt TQRTextqre TQRExprqrs TQRSysDataqrm TQRMemoqrrt TQRRichTextqrdr TQRDBRichTextqrsh TQRShapeqri TQRImageqrdi TQRDBMImageqrcr TQRCompositeReportqrp TQRPreviewqrtf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论