




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
外文原文USINGOBJECTPASCALOBJECTPASCALISAHIGHLEVEL,COMPILED,STRONGLYTYPEDLANGUAGETHATSUPPORTSSTRUCTUREDANDOBJECTORIENTEDDESIGNITSBENEFITSINCLUDEEASYTOREADCODE,QUICKCOMPILATION,ANDTHEUSEOFMULTIPLEUNITFILESFORMODULARPROGRAMMINGOBJECTPASCALHASSPECIALFEATURESTHATSUPPORTBORLANDSCOMPONENTFRAMEWORKANDRADENVIRONMENTFORTHEMOSTPART,DESCRIPTIONSANDEXAMPLESINTHISLANGUAGEREFERENCEASSUMETHATYOUAREUSINGOBJECTPASCALTODEVELOPAPPLICATIONSUSINGBORLANDDEVELOPMENTTOOLSSUCHASDELPHIORKYLIXMOSTDEVELOPERSUSINGBORLANDSOFTWAREDEVELOPMENTTOOLSWRITEANDCOMPILETHEIRCODEINTHEINTEGRATEDDEVELOPMENTENVIRONMENTIDEBORLANDDEVELOPMENTTOOLSHANDLEMANYDETAILSOFSETTINGUPPROJECTSANDSOURCEFILES,SUCHASMAINTENANCEOFDEPENDENCYINFORMATIONAMONGUNITSTHEPRODUCTALSOPLACESCONSTRAINTSONPROGRAMORGANIZATIONTHATARENOT,STRICTLYSPEAKING,PARTOFTHEOBJECTPASCALLANGUAGESPECIFICATIONFOREXAMPLE,BORLANDDEVELOPMENTTOOLSENFORCECERTAINFILEANDPROGRAMNAMINGCONVENTIONSTHATYOUCANAVOIDIFYOUWRITEYOURPROGRAMSOUTSIDEOFTHEIDEANDCOMPILETHEMFROMTHECOMMANDPROMPTTHESEHELPTOPICSGENERALLYASSUMETHATYOUAREWORKINGINTHEIDEANDTHATYOUAREBUILDINGAPPLICATIONSTHATUSETHEVISUALCOMPONENTLIBRARYVCLAND/ORBORLANDCOMPONENTLIBRARYFORCROSSPLATFORMCLXOCCASIONALLY,HOWEVER,BORLANDSPECIFICRULESAREDISTINGUISHEDFROMRULESTHATAPPLYTOALLOBJECTPASCALPROGRAMMINGPROGRAMORGANIZATIONPROGRAMSAREUSUALLYDIVIDEDINTOSOURCECODEMODULESCALLEDUNITSEACHPROGRAMBEGINSWITHAHEADING,WHICHSPECIFIESANAMEFORTHEPROGRAMTHEHEADINGISFOLLOWEDBYANOPTIONALUSESCLAUSE,THENABLOCKOFDECLARATIONSANDSTATEMENTSTHEUSESCLAUSELISTSUNITSTHATARELINKEDINTOTHEPROGRAMTHESEUNITS,WHICHCANBESHAREDBYDIFFERENTPROGRAMS,OFTENHAVEUSESCLAUSESOFTHEIROWNTHEUSESCLAUSEPROVIDESTHECOMPILERWITHINFORMATIONABOUTDEPENDENCIESAMONGMODULESBECAUSETHISINFORMATIONISSTOREDINTHEMODULESTHEMSELVES,OBJECTPASCALPROGRAMSDONOTREQUIREMAKEFILES,HEADERFILES,ORPREPROCESSORINCLUDEDIRECTIVESTHEPROJECTMANAGERGENERATESAMAKEFILEEACHTIMEAPROJECTISLOADEDINTHEIDE,BUTSAVESTHESEFILESONLYFORPROJECTGROUPSTHATINCLUDEMORETHANONEPROJECTPASCALSOURCEFILESTHECOMPILEREXPECTSTOFINDPASCALSOURCECODEINFILESOFTHREEKINDSUNITSOURCEFILESWHICHENDWITHTHEPASEXTENSIONPROJECTFILESWHICHENDWITHTHEDPREXTENSIONPACKAGESOURCEFILESWHICHENDWITHTHEDPKEXTENSIONUNITSOURCEFILESCONTAINMOSTOFTHECODEINANAPPLICATIONEACHAPPLICATIONHASASINGLEPROJECTFILEANDSEVERALUNITFILESTHEPROJECTFILEWHICHCORRESPONDSTOTHEMAINPROGRAMFILEINTRADITIONALPASCALORGANIZESTHEUNITFILESINTOANAPPLICATIONBORLANDDEVELOPMENTTOOLSAUTOMATICALLYMAINTAINAPROJECTFILEFOREACHAPPLICATIONIFYOUARECOMPILINGAPROGRAMFROMTHECOMMANDLINE,YOUCANPUTALLYOURSOURCECODEINTOUNITPASFILESBUTIFYOUUSETHEIDETOBUILDYOURAPPLICATION,YOUMUSTHAVEAPROJECTDPRFILEPACKAGESOURCEFILESARESIMILARTOPROJECTFILES,BUTTHEYAREUSEDTOCONSTRUCTSPECIALDYNAMICALLYLINKABLELIBRARIESCALLEDPACKAGESOTHERFILESUSEDTOBUILDAPPLICATIONSINADDITIONTOSOURCECODEMODULES,BORLANDPRODUCTSUSESEVERALNONPASCALFILESTOBUILDAPPLICATIONSTHESEFILESAREMAINTAINEDAUTOMATICALLYANDINCLUDEFORMFILES,WHICHENDWITHTHEDFMDELPHIORXFMKYLIXEXTENSION,RESOURCEFILES,WHICHENDWITHTHERESEXTENSION,PROJECTOPTIONSFILES,WHICHENDWITHTHEDOFDELPHIORKOFKYLIXEXTENSIONAFORMFILEISEITHERATEXTFILEORACOMPILEDRESOURCEFILETHATCANCONTAINBITMAPS,STRINGS,ANDSOFORTHEACHFORMFILEREPRESENTSASINGLEFORM,WHICHUSUALLYCORRESPONDSTOAWINDOWORDIALOGBOXINANAPPLICATIONTHEIDEALLOWSYOUTOVIEWANDEDITFORMFILESASTEXT,ANDTOSAVEFORMFILESASEITHERTEXTORBINARYALTHOUGHTHEDEFAULTBEHAVIORISTOSAVEFORMFILESASTEXT,THEYAREUSUALLYNOTEDITEDMANUALLYITISMORECOMMONTOUSEBORLANDSVISUALDESIGNTOOLSFORTHISPURPOSEEACHPROJECTHASATLEASTONEFORM,ANDEACHFORMHASANASSOCIATEDUNITPASFILETHAT,BYDEFAULT,HASTHESAMENAMEASTHEFORMFILEINADDITIONTOFORMFILES,EACHPROJECTUSESARESOURCERESFILETOHOLDTHEBITMAPFORTHEAPPLICATIONSICONBYDEFAULT,THISFILEHASTHESAMENAMEASTHEPROJECTDPRFILETOCHANGEANAPPLICATIONSICON,USETHEPROJECTOPTIONSDIALOGAPROJECTOPTIONSDOFORKOFFILECONTAINSCOMPILERANDLINKERSETTINGS,SEARCHDIRECTORIES,VERSIONINFORMATION,ANDSOFORTHEACHPROJECTHASANASSOCIATEDPROJECTOPTIONSFILEWITHTHESAMENAMEASTHEPROJECTDPRFILEUSUALLY,THEOPTIONSINTHISFILEARESETFROMPROJECTOPTIONSDIALOGVARIOUSTOOLSINTHEIDESTOREDATAINFILESOFOTHERTYPESDESKTOPSETTINGSDSKORDESKFILESCONTAININFORMATIONABOUTTHEARRANGEMENTOFWINDOWSANDOTHERCONFIGURATIONOPTIONSDESKTOPSETTINGSCANBEPROJECTSPECIFICORENVIRONMENTWIDETHESEFILESHAVENODIRECTEFFECTONCOMPILATIONCOMPILERGENERATEDFILESTHEFIRSTTIMEYOUBUILDANAPPLICATIONORASTANDARDDYNAMICLINKLIBRARY,THECOMPILERPRODUCESACOMPILEDUNITDCUWINDOWSDCU/DPULINUXFILEFOREACHNEWUNITUSEDINYOURPROJECTALLTHEDCUWINDOWSDCU/DPULINUXFILESINYOURPROJECTARETHENLINKEDTOCREATEASINGLEEXECUTABLEORSHAREDLIBRARYFILETHEFIRSTTIMEYOUBUILDAPACKAGE,THECOMPILERPRODUCESADCUWINDOWSDPULINUXFILEFOREACHNEWUNITCONTAINEDINTHEPACKAGE,ANDTHENCREATESBOTHADCPANDAPACKAGEFILEFORMOREINFORMATIONABOUTLIBRARIESANDPACKAGES,SEELIBRARIESANDPACKAGESIFYOUUSETHEDSWITCH,THELINKERGENERATESAMAPFILEANDADRCFILETHEDRCFILE,WHICHCONTAINSSTRINGRESOURCES,CANBECOMPILEDINTOARESOURCEFILEWHENYOUREBUILDAPROJECT,INDIVIDUALUNITSARENOTRECOMPILEDUNLESSTHEIRSOURCEPASFILESHAVECHANGEDSINCETHELASTCOMPILATION,ORTHEIRDCUWINDOWSDCU/DPULINUXFILESCANNOTBEFOUND,ORYOUEXPLICITLYTELLTHECOMPILERTOREPROCESSTHEMINFACT,ITISNOTNECESSARYFORAUNITSSOURCEFILETOBEPRESENTATALL,ASLONGASTHECOMPILERCANFINDTHECOMPILEDUNITFILEPROGRAMSANDUNITSAPROGRAMISCONSTRUCTEDFROMSOURCECODEMODULESCALLEDUNITSEACHUNITISSTOREDINITSOWNFILEANDCOMPILEDSEPARATELYCOMPILEDUNITSARELINKEDTOCREATEANAPPLICATIONUNITSALLOWYOUTODIVIDELARGEPROGRAMSINTOMODULESTHATCANBEEDITEDSEPARATELYCREATELIBRARIESTHATYOUCANSHAREAMONGPROGRAMSDISTRIBUTELIBRARIESTOOTHERDEVELOPERSWITHOUTMAKINGTHESOURCECODEAVAILABLEINTRADITIONALPASCALPROGRAMMING,ALLSOURCECODE,INCLUDINGTHEMAINPROGRAM,ISSTOREDINPASFILESBORLANDTOOLSUSEAPROJECTDPRFILETOSTORETHEMAINPROGRAM,WHILEMOSTOTHERSOURCECODERESIDESINUNITPASFILESEACHAPPLICATIONORPROJECTCONSISTSOFASINGLEPROJECTFILEANDONEORMOREUNITFILESSTRICTLYSPEAKING,YOUNEEDNTEXPLICITLYUSEANYUNITSINAPROJECT,BUTALLPROGRAMSAUTOMATICALLYUSETHESYSTEMUNITTOBUILDAPROJECT,THECOMPILERNEEDSEITHERASOURCEFILEORACOMPILEDUNITFILEFOREACHUNITIDENTIFIERSIDENTIFIERSDENOTECONSTANTS,VARIABLES,FIELDS,TYPES,PROPERTIES,PROCEDURES,FUNCTIONS,PROGRAMS,UNITS,LIBRARIES,ANDPACKAGESANIDENTIFIERCANBEOFANYLENGTH,BUTONLYTHEFIRST255CHARACTERSARESIGNIFICANTANIDENTIFIERMUSTBEGINWITHALETTERORANUNDERSCORE_ANDCANNOTCONTAINSPACESLETTERS,DIGITS,ANDUNDERSCORESAREALLOWEDAFTERTHEFIRSTCHARACTERRESERVEDWORDSCANNOTBEUSEDASIDENTIFIERSSINCEOBJECTPASCALISCASEINSENSITIVE,ANIDENTIFIERLIKECALCULATEVALUECOULDBEWRITTENINANYOFTHESEWAYSCALCULATEVALUECALCULATEVALUECALCULATEVALUECALCULATEVALUEONLINUX,THEONLYIDENTIFIERSFORWHICHCASEISIMPORTANTAREUNITNAMESSINCEUNITNAMESCORRESPONDTOFILENAMES,INCONSISTENCIESINCASECANSOMETIMESAFFECTCOMPILATIONQUALIFIEDIDENTIFIERSWHENYOUUSEANIDENTIFIERTHATHASBEENDECLAREDINMORETHANONEPLACE,ITISSOMETIMESNECESSARYTOQUALIFYTHEIDENTIFIERTHESYNTAXFORAQUALIFIEDIDENTIFIERISIDENTIFIER1IDENTIFIER2WHEREIDENTIFIER1QUALIFIESIDENTIFIER2FOREXAMPLE,IFTWOUNITSEACHDECLAREAVARIABLECALLEDCURRENTVALUE,YOUCANSPECIFYTHATYOUWANTTOACCESSTHECURRENTVALUEINUNIT2BYWRITINGUNIT2CURRENTVALUEQUALIFIERSCANBEITERATEDFOREXAMPLE,FORM1BUTTON1CLICKCALLSTHECLICKMETHODINBUTTON1OFFORM1IFYOUDONTQUALIFYANIDENTIFIER,ITSINTERPRETATIONISDETERMINEDBYTHERULESOFSCOPEDESCRIBEDINBLOCKSANDSCOPEDECLARATIONSTHENAMESOFVARIABLES,CONSTANTS,TYPES,FIELDS,PROPERTIES,PROCEDURES,FUNCTIONS,PROGRAMS,UNITS,LIBRARIES,ANDPACKAGESARECALLEDIDENTIFIERSNUMERICCONSTANTSLIKE26057ARENOTIDENTIFIERSIDENTIFIERSMUSTBEDECLAREDBEFOREYOUCANUSETHEMTHEONLYEXCEPTIONSAREAFEWPREDEFINEDTYPES,ROUTINES,ANDCONSTANTSTHATTHECOMPILERUNDERSTANDSAUTOMATICALLY,THEVARIABLERESULTWHENITOCCURSINSIDEAFUNCTIONBLOCK,ANDTHEVARIABLESELFWHENITOCCURSINSIDEAMETHODIMPLEMENTATIONADECLARATIONDEFINESANIDENTIFIERAND,WHEREAPPROPRIATE,ALLOCATESMEMORYFORITFOREXAMPLE,VARSIZEEXTENDEDDECLARESAVARIABLECALLEDSIZETHATHOLDSANEXTENDEDREALVALUE,WHILEFUNCTIONDOTHISX,YSTRINGINTEGERDECLARESAFUNCTIONCALLEDDOTHISTHATTAKESTWOSTRINGSASARGUMENTSANDRETURNSANINTEGEREACHDECLARATIONENDSWITHASEMICOLONWHENYOUDECLARESEVERALVARIABLES,CONSTANTS,TYPES,ORLABELSATTHESAMETIME,YOUNEEDONLYWRITETHEAPPROPRIATERESERVEDWORDONCEVARSIZEEXTENDEDQUANTITYINTEGERDESCRIPTIONSTRINGTHESYNTAXANDPLACEMENTOFADECLARATIONDEPENDONTHEKINDOFIDENTIFIERYOUAREDEFININGINGENERAL,DECLARATIONSCANOCCURONLYATTHEBEGINNINGOFABLOCKORATTHEBEGINNINGOFTHEINTERFACEORIMPLEMENTATIONSECTIONOFAUNITAFTERTHEUSESCLAUSESPECIFICCONVENTIONSFORDECLARINGVARIABLES,CONSTANTS,TYPES,FUNCTIONS,ANDSOFORTHAREEXPLAINEDINTHEDOCUMENTATIONFORTHOSETOPICSTHEHINTDIRECTIVESPLATFORM,DEPRECATED,ANDLIBRARYMAYBEAPPENDEDTOANYDECLARATIONINTHECASEOFAPROCEDUREORFUNCTIONDECLARATION,THEHINTDIRECTIVESHOULDBESEPARATEDFROMTHERESTOFTHEDECLARATIONWITHASEMICOLONEXAMPLESPROCEDURESOMEOLDROUTINESTDCALLDEPRECATEDVARVERSIONNUMBERREALLIBRARYTYPEAPPERRORCLASSEXCEPTIONENDPLATFORMWHENSOURCECODEISCOMPILEDINTHEHINTSONWARNINGSONSTATE,EACHREFERENCETOANIDENTIFIERDECLAREDWITHONEOFTHESEDIRECTIVESGENERATESANAPPROPRIATEHINTORWARNINGUSEPLATFORMTOMARKITEMSTHATARESPECIFICTOAPARTICULAROPERATINGENVIRONMENTSUCHASWINDOWSORLINUX,DEPRECATEDTOINDICATETHATANITEMISOBSOLETEORSUPPORTEDONLYFORBACKWARDCOMPATIBILITY,ANDLIBRARYTOFLAGDEPENDENCIESONAPARTICULARLIBRARYORCOMPONENTFRAMEWORKSUCHASVCLORCLXLIBRARIESANDPACKAGESADYNAMICALLYLOADABLELIBRARYISADYNAMICLINKLIBRARYDLLONWINDOWSORASHAREDOBJECTLIBRARYFILEONLINUXITISACOLLECTIONOFROUTINESTHATCANBECALLEDBYAPPLICATIONSANDBYOTHERDLLSORSHAREDOBJECTSLIKEUNITS,DYNAMICALLYLOADABLELIBRARIESCONTAINSHARABLECODEORRESOURCESBUTTHISTYPEOFLIBRARYISASEPARATELYCOMPILEDEXECUTABLETHATISLINKEDATRUNTIMETOTHEPROGRAMSTHATUSEITTODISTINGUISHTHEMFROMSTANDALONEEXECUTABLES,ONWINDOWSFILESCONTAININGCOMPILEDDLLSARENAMEDWITHTHEDLLEXTENSIONONLINUX,FILESCONTAININGSHAREDOBJECTFILESARENAMEDWITHASOEXTENSIONOBJECTPASCALPROGRAMSCANCALLDLLSORSHAREDOBJECTSWRITTENINOTHERLANGUAGES,ANDAPPLICATIONSWRITTENINOTHERLANGUAGESCANCALLDLLSORSHAREDOBJECTSWRITTENINOBJECTPASCALCLASSESANDOBJECTSACLASS,ORCLASSTYPE,DEFINESASTRUCTURECONSISTINGOFFIELDS,METHODS,ANDPROPERTIESINSTANCESOFACLASSTYPEARECALLEDOBJECTSTHEFIELDS,METHODS,ANDPROPERTIESOFACLASSARECALLEDITSCOMPONENTSORMEMBERSAFIELDISESSENTIALLYAVARIABLETHATISPARTOFANOBJECTLIKETHEFIELDSOFARECORD,ACLASSSFIELDSREPRESENTDATAITEMSTHATEXISTINEACHINSTANCEOFTHECLASSAMETHODISAPROCEDUREORFUNCTIONASSOCIATEDWITHACLASSMOSTMETHODSOPERATEONOBJECTS,THATIS,INSTANCESOFACLASSSOMEMETHODSCALLEDCLASSMETHODSOPERATEONCLASSTYPESTHEMSELVESAPROPERTYISANINTERFACETODATAASSOCIATEDWITHANOBJECTOFTENSTOREDINAFIELDPROPERTIESHAVEACCESSSPECIFIERS,WHICHDETERMINEHOWTHEIRDATAAREREADANDMODIFIEDFROMOTHERPARTSOFAPROGRAMOUTSIDEOFTHEOBJECTITSELFSPROPERTYAPPEARSINMOSTRESPECTSLIKEAFIELDOBJECTSAREDYNAMICALLYALLOCATEDBLOCKSOFMEMORYWHOSESTRUCTUREISDETERMINEDBYTHEIRCLASSTYPEEACHOBJECTHASAUNIQUECOPYOFEVERYFIELDDEFINEDINTHECLASS,BUTALLINSTANCESOFACLASSSHARETHESAMEMETHODSOBJECTSARECREATEDANDDESTROYEDBYSPECIALMETHODSCALLEDCONSTRUCTORSANDDESTRUCTORSAVARIABLEOFACLASSTYPEISACTUALLYAPOINTERTHATREFERENCESANOBJECTHENCEMORETHANONEVARIABLECANREFERTOTHESAMEOBJECTLIKEOTHERPOINTERS,CLASSTYPEVARIABLESCANHOLDTHEVALUENILBUTYOUDONTHAVETOEXPLICITLYDEREFERENCEACLASSTYPEVARIABLETOACCESSTHEOBJECTITPOINTSTOFOREXAMPLE,SOMEOBJECTSIZE100ASSIGNSTHEVALUE100TOTHESIZEPROPERTYOFTHEOBJECTREFERENCEDBYSOMEOBJECTYOUWOULDNOTWRITETHISASSOMEOBJECTSIZE100TEXTFILESTHISSECTIONSUMMARIZESI/OUSINGFILEVARIABLESOFTHESTANDARDTYPETEXTWHENATEXTFILEISOPENED,THEEXTERNALFILEISINTERPRETEDINASPECIALWAYITISCONSIDEREDTOREPRESENTASEQUENCEOFCHARACTERSFORMATTEDINTOLINES,WHEREEACHLINEISTERMINATEDBYANENDOFLINEMARKERACARRIAGERETURNCHARACTER,POSSIBLYFOLLOWEDBYALINEFEEDCHARACTERTHETYPETEXTISDISTINCTFROMTHETYPEFILEOFCHARFORTEXTFILES,THEREARESPECIALFORMSOFREADANDWRITETHATLETYOUREADANDWRITEVALUESTHATARENOTOFTYPECHARSUCHVALUESAREAUTOMATICALLYTRANSLATEDTOANDFROMTHEIRCHARACTERREPRESENTATIONFOREXAMPLE,READF,I,WHEREIISATYPEINTEGERVARIABLE,READSASEQUENCEOFDIGITS,INTERPRETSTHATSEQUENCEASADECIMALINTEGER,ANDSTORESITINITHEREARETWOSTANDARDTEXTFILEVARIABLES,INPUTANDOUTPUTTHESTANDARDFILEVARIABLEINPUTISAREADONLYFILEASSOCIATEDWITHTHEOPERATINGSYSTEMSSTANDARDINPUTTYPICALLY,THEKEYBOARDTHESTANDARDFILEVARIABLEOUTPUTISAWRITEONLYFILEASSOCIATEDWITHTHEOPERATINGSYSTEMSSTANDARDOUTPUTTYPICALLY,THEDISPLAYBEFOREANAPPLICATIONBEGINSEXECUTING,INPUTANDOUTPUTAREAUTOMATICALLYOPENED,ASIFTHEFOLLOWINGSTATEMENTSWEREEXECUTEDASSIGNFILEINPUT,RESETINPUTASSIGNFILEOUTPUT,REWRITEOUTPUTNOTETEXTORIENTEDI/OISAVAILABLEONLYINCONSOLEAPPLICATIONS,THATIS,APPLICATIONSCOMPILEDWITHTHE“GENERATECONSOLEAPPLICATION”OPTIONCHECKEDONTHELINKERPAGEOFTHEPROJECTOPTIONSDIALOGBOXORWITHTHECCCOMMANDLINECOMPILEROPTIONINAGUINONCONSOLEAPPLICATION,ANYATTEMPTTOREADORWRITEUSINGINPUTOROUTPUTWILLPRODUCEANI/OERRORSOMEOFTHESTANDARDI/OROUTINESTHATWORKONTEXTFILESDONTNEEDTOHAVEAFILEVARIABLEEXPLICITLYGIVENASAPARAMETERIFTHEFILEPARAMETERISOMITTED,INPUTOROUTPUTISASSUMEDBYDEFAULT,DEPENDINGONWHETHERTHEPROCEDUREORFUNCTIONISINPUTOROUTPUTORIENTEDFOREXAMPLE,READXCORRESPONDSTOREADINPUT,XANDWRITEXCORRESPONDSTOWRITEOUTPUT,XIFYOUDOSPECIFYAFILEWHENCALLINGONEOFTHEINPUTOROUTPUTROUTINESTHATWORKONTEXTFILES,THEFILEMUSTBEASSOCIATEDWITHANEXTERNALFILEUSINGASSIGNFILE,ANDOPENEDUSINGRESET,REWRITE,ORAPPENDANEXCEPTIONISRAISEDIFYOUPASSAFILETHATWASOPENEDWITHRESETTOANOUTPUTORIENTEDPROCEDUREORFUNCTIONANEXCEPTIONISALSORAISEDIFYOUPASSAFILETHATWASOPENEDWITHREWRITEORAPPENDTOANINPUTORIENTEDPROCEDUREORFUNCTION中文翻译使用OBJECTPASCALOBJECTPASCAL是一种支持结构化面向对象程序设计的计算机高级编程语言,具有代码易读、编译快速、多重单元文件实现模块化编程等优点。OBJECTPASCAL最具优势的特点是支持BORLAND组件构架和支持快速应用开发(RAD,RAPIDAPPLICATIONDEVELOPMENT)环境。当前OBJECTPASCAL语言参考中的大多数描述和范例都是针对在BORLAND开发工具(如DELPHI和KYLIX)中使用OBJECTPASCAL进行应用开发。大多数使用BORLAND软件开发工具的开发者在集成开发环境(IDE,INTEGRATEDDEVELOPMENTENVIRONMENT)中完成代码的编写和编译。BORLAND开发工具还能替开发者处理许多有关工程和源文件设置的详细资料,如管理单元之间的相关信息;该产品也能设置有关程序组织的约束(严格地说,这些约束是OBJECTPASCAL语言规范的一部分)。例如,BORLAND开发工具加强了对某些文件和单元命名的限制,尽管这些限制当在集成开发环境之外编写代码并且以命令提示符的方式编译代码时是可以被消除的。当前OBJECTPASCAL语言参考一般针对工作于集成开发环境(IDE)并且利用BORLAND可视化组件库(VISUALCOMPONENTLIBRARY)和/或BORLAND跨平台组件库(COMPONENTLIBRARYFORCROSSPLATFORM)建立应用程序,然而,与适用于所有OBJECTPASCAL编程的规则相比,有时候BORLAND特殊规则更显其优势。程序组织程序通常分成若干称为单元的源代码模块。每个程序都有首部并以首部开始,首部确定了程序名。跟随首部之后的是可选的USES子句,然后是声明块和语句。USES子句列出连接到程序的所有单元;这些单元可以被为其他程序所用,通常还包括单元中USES子句列出的单元。USES子句向编译器提供模块之间的相关信息。由于这些信息存储在模块自身内部,因此OBJECTPASCAL程序不需要程序描述文件(MAKEFILE)、头文件(HEADERFILE)或含有编译指示的预处理程序(PREPROCESSOR)。项目管理器(PROJECTMANAGER)每次载入一个工程(PROJECT)到集成开发环境(IDE)中时都会产生一个相应的程序描述文件,但只在项目组(PROJECTGROUP)中含有多于一个工程时才会保存这些程序描述文件。PASCAL源文件编译器在编译程序时将希望找到以下三种PASCAL源文件单元源文件(扩展文件名为PAS)工程文件(扩展文件名为DPR)包源文件(扩展文件名为DPK)其中,单元源文件包含了应用程序的大不分代码。每个应用程序都有一个单独的工程文件和几个单元文件;工程文件相当于传统PASCAL中的主程序,它将单元文件组织到应用程序中。BORLAND开发工具为每个应用程序自动管理工程文件。如果以命令行的方式编译程序,那么可以将所有的源代码置于单元(PAS)文件中。但如果要在集成开发环境中建立应用程序,则必需有一个工程(DPR)文件。包源文件与工程文件类似,只是包源文件用语构造特殊称为“包”的动态链接库。用于建立应用程序的其他文件除源代码模块外,BORLAND产品还使用一些非PASCAL文件建立应用程序,这些文件会被自动保存,包括窗体文件,扩展文件名为DFM(DELPHI)或XFM(KYLIX)资源文件,扩展文件名为RES工程选项文件,扩展文件名为DOF(DELPHI)或KOF(KYLIX)窗体文件可以是本文件,也可以是编译过的资源文件,文件中可以含有位图、字符串等。每个窗体文件代表一个单独的窗体。在应用程序中,这些窗体相当于窗口或对话框。集成开发环境允许开发者以文本的方式查看和编辑窗体文件,并以文本文件或二进制文件的形式保存。每个工程至少有一个窗体,并且每个窗体都有一个PAS单元文件与之相关联,默认情况下窗体文件与其相应的PAS文件具有相同的主文件名。除了窗体文件之外,DELPHI或KYLIX会对每个工程用一个RES资源文件保存应用程序的图标。默认情况下该文件与其相应的DPR文件具有相同的主文件名。要改变应用程序图标,可以使用“PROJECTOPTIONS”对话框。工程选项(DOF或KOF)文件中含有编译器和连接设置、搜索目录、版本信息等。对于每一个工程,都有一个与之相关的工程选项文件,工程选项文件与相应工程(DPR)文件具有相同的主文件名。工程选项文件的设置通常在“PROJECTOPTIONS”对话框中进行。集成开发环境中不同的工具存储数据在不同类型的文件中。桌面设置(DSK或DESK)文件中含有窗口排列位置信息和其他配置选项;桌面设置可以针对指定的工程,也可以针对较广的开发环境。这些文件对编译程序没有任何直接影响。编译器产生的文件首次建立应用程序或标准动态链接库时,编译器将为工程中每个新引用的单元产生编译过的单元DCU(WINDOWS)文件或DPU(LINUX)文件;工程中所有DCU(WINDOWS)或DPU(LINUX)文件将被连接用于创建一个单独的可执行文件或可共享的库文件。首次建立包时的情况也类似,不同的是,首次建立包时,编译器还要产生一个包(DPK)文件和一个编译过的包(DCP)文件。如果使用了D编译指示,连接器(LINKER)还将产生一个映象文件和一个DRC文件。其中,DRC文件中含有字符串资源,可以被编译成为资源文件。重建工程时,部分单元不会被重编译,除非其源文件(PAS文件)自最后一次编译以来发生了改变,或者不能找到相应的DCU(WINDOWS)文件或DPU(LINUX)文件,或者明确让编译器重新编译。实际上,根本不必为编译器提供单元的源文件,只要编译器能找到相应编译过的单元文件即可。程序和单元由源代码模块的程序叫做单元。每个单元保存在各自相应的文件中并且分别编译;编译过的单元被连接用于创建应用程序。单元允许开发者将大的程序组分成可以分别编辑的若干模块。在程序组中创建共享库。向其他的开发者分发库(编译过的单元)而保留源代码。在传统的PASCAL编程中,所有的源代码,包括主程序,都保存在PAS文件中。BORLAND开发工具用工程(DPR)文件存储主程序,而将大多数其他的源代码驻留在单元(PAS)文件中。每个应用程序或工程都是由一个工程文件和一个或更多的单元文件组成。(严格地说,尽管有时在工程中不需要明确通过USES子句使用任何单元,但所有的程序都会自动使用SYSTEM单元。)要建立一个工程,编译器需要每个单元的源代码(PAS)文件或编译过的单元(DCU)文件。标识符标识符用于表示常量、变量、域、类型、属性、过程、函数、程序、单元、库和包等。尽管标识符的长度可以是任意的,但只有前255个字符是有意义的。标识符必需以字母或下划线(_)开始(即标识符的第一个字符必需是字母或下划线),并且标识符中不能包括空格。在标识符的第一个字符之后,字母、数字、下划线都是允许的。保留字不能作为标识符使用。OBJECTPASCAL语言对字符大小写是不敏感的。例如,标识符CALCULATEVALUE可以被写成以下几种方式CALCULATEVALUECALCULATEVALUECALCULATEVALUECALCULATEVALUE在LINUX中,标识符作为单元名时大小写比较重要。由于单元名与相应的源文件名是相匹配的,因此大小写不一致有时会影响编译。限制标识符在使用的标识符在多于一个单元中都有声明时,有时有必要限制标识符。限制标识符的语法如下IDENTIFIER1IDENTIFIER2这里的IDENTIFIER1限制了IDENTIFIER2。例如,如果两个单元中都声明了名为CURRENTVALUE的变量,那么可以通过对标识符进行限制来指定访问UNIT2中的CURRENTVALUE,写成UNIT2CURRENTVALUE此外,OBJECTPASCAL允许迭代限制。例如语句FORM1BUTTON1CLICK调用了FORM1中BUTTON1的CLICK方法。如果不对标识符进行限制,那么编译器将根据作用域规则确定对该标识符的解释。声明变量、常量、类型、域、属性、过程、函数、程序、单元、库、包等等,它们的名字都叫做标识符。(数字常量不是标识符,如26057。)标识符在能使用之前必须被声明,除了极少数能被编译器自动识别的预定义类型和例程。变量RESULT出现在函数块中,变量SELF出现在方法实现中。一个声明定义一个标识符,并且适当的情况下为标识符分配内存。例如,VARSIZEEXTENDED声明了一个叫做SIZE的变量,该变量用于保存EXTENDED(实数)值,而FUNCTIONDOTHISX,YSTRINGINTEGER生命了一个叫做DOTHIS的函数,该函数接受两个串作为参数并返回一个整数。所有的声明都以分号()结束。要同时声明几个变量、常量、类型或标号,可以只写一次适当的保留字。VARSIZEEXTENDEDQUANTITYINTEGERDESCRIPTIONSTRING声明的语法和布局取决于被声明的标识符的种类。通常,声明只出现在块、接口节或实现节的首部(在USES子句之后)。对于声明变量、常量、类型、函数等,还有一些各自的约定,相关说明在相应的主题文档中。提示指示(HINTDIRECTIVES)字PLATFORM、DEPRECATED和LIBRARY等可以附加到任何说明中。对于过程和函数声明的情况,提示指示字应通过分号()与声明分开。例如PROCEDURESOMEOLDROUTINESTDCALLDEPRECATEDVARVERSIONNUMBERREALLIBRARYTYPEAPPERRORCLASSEXCEPTIONENDPLATFORM当源代码在编译指示HINTSONWARNINGSON状态下编译时,对于声明中含有提示指示字的标识符,编译器对每次此类标识符的引用都产生适当的提示或警告。用PLATFORM可以标记那些具体到特别操作环境(如WINDOWS或LINUX)的声明项;用DEPRECATED可以指出声明项是废弃的(或仅向后兼容,即向旧的版本兼容);用LIBRARY可以标记对特殊库或组件框架(如VCL或CLX)的依赖关系。库和包动态可加载库在WINDOWS中是指动态链接库(DLL),在LINUX中是指共享对象文件。动态可加载库是一些例程的集合,这些例程可以被应用程序、其他
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论