当前位置: 首页 > news >正文

两学一做知识竞赛网站做百度网站需要多少钱

两学一做知识竞赛网站,做百度网站需要多少钱,河南省建设厅网站查询,中国农村建设投资有限公司网站首页//delphi中exit,abort,break,continue 的区别exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,while, repeat等循环体continue: 结束循环内的本次处理,继续从循环体的开始位置继续执行Exit 是跳出当前代码块#xff0c;也就是当前函… //delphi中exit,abort,break,continue 的区别exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,while, repeat等循环体continue: 结束循环内的本次处理,继续从循环体的开始位置继续执行Exit 是跳出当前代码块也就是当前函数跳出后是要继续向下执行的如果有后续代码。Abort 是从 EAbort 过来的可以激发 exception其实质就是 Abort RaiseException()是一个不出现对话框的异常。所以 Abort 的行为和异常是一样的其代码执行顺序也是follow异常的流程。例如try(1) //执行了abort;(2) //不执行exception(3) //执行了end;用 Abort 能够执行 exception 里边的代码但是如果用 Exit就直接离开不管 exception。例如procedure p1;beginp2;p3;end;procedure p2;beginabort; //exit;end;procedure p3;begin//showmessage()..end;如果用 Abort则执行不到 P3如果用 Exit 就能够执行到 P3******************************************************************************在Delphi过程、函数中传递参数几个修饰符为Const、Var、Out。另一种不加修饰符的为默认按值传递参数。一、默认方式以值方式传递参数procedure TForm1.ProcNormal(Value: string);beginOrigNum:Value Me;lblReturn.Caption:OrigNum;//OrigNum为Hello MelblOrig.Caption:Value;//Value为Helloend;调用OrigNum:Hello;ProcNormal(OrigNum);二、以Const方式传递参数这个参数在调用过程中不能改变并且这种方式会被编译器优化一般建议尽可能地使用这种方式。procedure TForm1.ProcConst(const Value: string);beginOrigNum:Value Me;lblReturn.Caption:OrigNum;//为Hello Me‘lblOrig.Caption:Value;//为Hello Meend;三、按引用方式传递参数procedure TForm1.ProcRef(var value: string);beginOrigNum:Value Me;lblReturn.Caption:OrigNum;//为Hello Me‘lblOrig.Caption:Value;//为Hello Meend;四、按Out方式传递参数这个方式传递参数时参数可以不被初始化即使有值也被忽视它一般用于输出,它可以实现在一个过程中返回多个值,我们通常在分布式对象模型如COM中使用它。procedure TForm1.ProcOut(out Value: string);beginOrigNum:Value Me;lblReturn.Caption:OrigNum;//为MelblOrig.Caption:Value;//为Meend;五、无类型参数这是一种较为特殊的方法参数的类型不确定只能用Const、Var、Out修饰不能用于值方式传递参数具体使用示例如下procedure TForm1.ProcUntype(const Value);beginOrigNum:string(Value) Me;lblReturn.Caption:OrigNum;//为Hello MelblOrig.Caption:string(Value);//为Hello Meend;六、默认参数即如果此参数在调用时未提供时将使用默认值。procedure TForm1.ProcDefault(const Value, constDefaultValue:string 123);beginOrigNum:Value MeDefaultValue;lblReturn.Caption:OrigNum;//为Hello Me 123lblOrig.Caption:Value;// 为Hello Me 123end;七、开放数组参数即参数数组的元素个数不确定。procedure TForm1.ProcArray(const Value: array of string);vari:Integer;beginfor i:Low(Value) to High(Value) doOrigNum:OrigNumValue[i];//调用后为Hello abc dbdlblReturn.Caption:OrigNum;end;调用OrigNum:Hello;ProcArray([ abc , dbd]);八、无类型开放数组参数即类型及元素个数皆不确定。在WIN32平台中这个参数的类型实际为array ofTVarRec,其使用示例如下:procedure TForm1.ProcArrayConst(const Value: array of const);vari:Integer;beginfor i:Low(Value) to High(Value) dowith Value[i] docase VType ofvtAnsiString: OrigNum: OrigNumString(VAnsiString);vtInteger: OrigNum:OrigNumIntToStr(VInteger);vtBoolean: OrigNum : OrigNum BoolToStr(VBoolean);vtChar: OrigNum : OrigNum VChar;vtExtended: OrigNum : OrigNum FloatToStr(VExtended^);vtString: OrigNum : OrigNum VString^;vtPChar: OrigNum : OrigNum VPChar;vtObject: OrigNum : OrigNum VObject.ClassName;vtClass: OrigNum : OrigNum VClass.ClassName;vtCurrency: OrigNum : OrigNum CurrToStr(VCurrency^);vtVariant: OrigNum : OrigNum string(VVariant^);vtInt64: OrigNum : OrigNum IntToStr(VInt64^);end;lblReturn.Caption:OrigNum;//调用后为Hello abc 3end;调用OrigNum:Hello;ProcArrayConst([ abc ,3]);以上就是常见几种传递参数的方式。//另一篇文章关于delphi参数传递的//delphi参数传递参数传递  声明/实现一个过程使用的参数称为形式参数简称形参调用过程时传入的参数称为实际参数简称实参。{ Info是形参}procedure ShowInfo(Info: String);begin ShowMessage(Info);end;var S: String;begin S : lxpbuaa; {S是实参} ShowInfo(S);end;参数传递分两种按值by val和引用by ref。这两种方式的本质区别是按值传递时形参和实参是两个变量它们开始时的值是相同的即实参的数据被拷贝一份传递给了形参。所以此时形参的改变不会影响到实参。引用传递时形参和实参是同一个变量可以将它们之一看做是另一个的别名。 所以此时形参改变时实参跟着改变。默认情况下参数是按值传递的传递的是数据拷贝如果加了var前缀则成了引用传递。我们看如下例子procedure TForm1.ByVal(I: Integer);   {按值传递I}begin ShowMessage(IntToStr(Integer(I)));    {取得形参所在地址。你会发现它和实参地址是不同的因为此时实参和形参是不同的两个变量} I : I 1;end;procedure TForm1.ByRef(var I: Integer); {引用传递I}begin ShowMessage(IntToStr(Integer(I)));    {取得形参所在地址。你会发现它和实参地址是相同的因为此时实参和形参是同一个变量} I : I 1;end;procedure TForm1.Button1Click(Sender: TObject);var I: Integer;begin I : 1; ShowMessage(IntToStr(Integer(I)));     {取得实参所在地址} ByVal(I);  { I 1} Showmessage(i); {i:1;实参没有变} ByRef(I);  { I 2} showmessage(i); {i:2,实参改变了}end;按值传递的参数可以指定默认值比如上面的ByVal可以是这样procedure ByVal(I: Integer 0);调用它时可以省掉有默认值的参数ByVal。带默认值的参数必须位于参数列表的最后如procedure ByVal(I: Integer 0; B: Boolean);是不行的应该改为procedure ByVal(B: Boolean; I: Integer 0);因为默认值必须是一个常数表达式所以dynamic-array、procedural、class、class-reference和 interface等参数只能指定nil默认值而record、variant、file和static-array等类型的参数则根本不能指定默认 值。如果按值传递一个指针类型的参数情况会变得复杂而又很有意思。此时实际传递的是什么呢是实际数据的拷贝吗不是指针的拷贝也就是说形参和实参是 两个指针不过这两个指针指向了相同地址。所以这时候形参和实参可以共享它们指向地址中的数据但如果改变了形参的指针指向实参的指针指向不能跟着改 变。那么总结一下就是按值传递指针参数时实参和形参可以共享指针指向地址中的数据但是不能共享指针本身的指向。而引用传递时因为实参和形参是同 一个变量因此实现完全共享。看下面的例子procedure TForm1.ByVal(Obj: TObject);begin Obj : Button1;    {改变形参指针指向实参的指针指向不会跟着改变因为它们是两个变量。如果仅仅是改变Obj的属性而不改变指向则实参的属性会跟着改变}end;procedure TForm1.ByRef(var Obj: TObject);begin Obj : Button1;      {改变形参指针指向实参的指针指向跟着改变因为它们是同一个变量}end;procedure TForm1.Button1Click(Sender: TObject);var Obj: TObject;begin Obj : Self;        {Self即Form1所以此时实参Obj的类名ClassName是TForm1} ByVal(Obj);           {按值传递指针变量Obj} ShowMessage(Obj.ClassName);   {显示类名TForm1} ByRef(Obj);            {引用传递指针变量Obj} ShowMessage(Obj.ClassName);   {显示类名TButton1}end;上面讲了这么多最根本的还是一句话按值传递时形参和实参是两个变量引用传递时形参和实参是同一个变量。抓住这句话就等于抓住了一切。(ps:关键总结):相信你还看到过如下格式的参数声明function CompareStr(const S1, S2: string): Integer;function TryStrToInt(const S: string; out Value: Integer): Boolean;其中使用了const和out关键字。如果你没有看到过这样的声明也不要紧它们是真实存在的。const声明的参数是按值传递的而且形参不能被改变。out声明的参数是引用传递的主要用于定义输出参数也就是说不需要输入值即实参不需要初始化实参传递给形参的值被忽略。如果用const修饰指针参数那么只能通过形参修改指针地址里的数据而不能修改指针本身的指向。例如对于一个const对象参数可以修改其属性但是不能将它指向其他对象。例如procedure ShowInfo(const Form: TForm);begin {以下一句不能通过编译器提示[Error] Unit1.pas(28): Left side  cannot be assigned to} {Form : Form1;} {但是通过其属性或者方法修改隶属于Form的数据} Form.Caption : lxpbuaa; ShowMessage(Form.Caption);end;在本小节的最后还不得不提及一种很特殊的参数类型无类型参数Untyped parameters。声明时没有指定数据类型的参数称为无类型参数。因此从语法上讲无类型参数可以接收任何类型的数据。无类型参数必须加const、out或var前缀无类型参数不能指定默认值。如以下一些Delphi定义的过程都使用了无类型参数procedure SetLength(var S; NewLength: Integer);    {参数S}procedure Move(const Source;var Dest;Count:Integer);  {参数Source、Dest}procedure TStream.WriteBuffer(const Buffer; Count: Longint);{参数Buffer}所谓无类型参数可以接收任何类型的值只是从语法角度而言的。或者说理论上我们可以实现一个可以使用任何类型变量作为参数的过程但是实际上没有必要也不可能做到。打个比方说我们想造一辆可以装载任何物体的汽车。因为是“任何物体”所以物体可能是任何形状于是这辆车必须没有车篷除了在几个车轮上铺一个足够大 足够大就已经是个大问题了的平板外不能再有任何东西。这时候这个平板就可以看做是无类型的因为它上面可以坐人、摆一张桌子也可以赶一些动物上 去站着或者躺着。尽管它可以承载很多种类的东西但是也是有限制的比如不能放一座山、也无法容纳1万头猪。所以无类型参数的类型往往是有一定限制的。比 如SetLength的参数S只能是字符串、动态数组等。这种限制一般是在过程的实现中完成的在运行时检查参数值的实际类型。对于与开发环境关系紧密的参数限制也可以构筑在编译器里。使用无类型参数的原因是无法在声明时使用一个统一的类型来描述运行时可能的类型如SetLength的参数S可以是字符串和动态数组而并没有一个统一 的类型来代表字符串和动态数组类型所以干脆声明为无类型。而将类型限制放到别的地方实现如编译器。例如SetLength的限制规则是写在编译器中 的它只能作用于长字符串或者动态数组。你企图完成下面的功能时var I: Integer;begin SetLength(I, 10);end;编译器编译时将给出错误信息[Error] Unit1.pas(35): Incompatible types。导致编译中断。小结本小节的内容比较重要重点是理解参数按值传递和引用传递的本质按值传递时形参和实参是两个变量引用传递时形参和实参是同一个变量。声明指令声明一个过程可以使用register、pascal、cdecl、stdcall和safecall指令来指定参数传递顺序和参数内存管理方式从而影响过程的运作。如function MyFunction(X, Y: Integer): Integer; cdecl;这五个指令具有不同含义如表3-1所示。表3-1  五个指令的不同含义  指令   参数存放位置    参数传递顺序  参数内存管理     适用地点 register  CPU寄存器    从左到右    被调用者  默认.published属性存取                                  方法 必须使用 pascal     栈      从左到右    被调用者   向后兼容不再使用 cdecl      栈      从右到左    调用者    调用C/C共享库 stdcall     栈      从右到左    被调用者   API调用如回调函数 safecall     栈      从右到左    被调用者   API调用如回调函数。双在一些源代码包括Delphi自带的VCL源代码中你还可能看到near、far、export以及inline、assemble等指令它们是 为了和16位Windows系统或者早期Pascal/Delphi兼容在目前的Delphi版本中已经不具有任何意义所以在新的开发中不要再使 用。 转载于:https://blog.51cto.com/right2pearl/1567432
http://www.pierceye.com/news/255543/

相关文章:

  • 个人做电商网站赚钱吗门业网站模板
  • 企业产品微网站收费吗wordpress移服务器改域名
  • 原创文章网站网站建设团队介绍
  • WordPress建站详细过程安康建设网站
  • 仿视频网站开发wordpress下载文件
  • 专业的个人网站建设哪家建筑施工企业专职安全生产管理员
  • 企业网站模板php全球网站排名前100
  • 1688网站可以做全屏吗有哪些网站是织梦做的
  • vue2.0网站开发做网站没有成本的方法
  • 手机网站和app有什么区别流量对网站排名的影响因素
  • 北京全网营销推广公司网站建设以及seo
  • 免费html网站代码骨科医院网站模板
  • 华强方特网站开发辽宁工程技术大学电子信息网
  • 信誉好的网站建设案例微网站后台录入
  • 网站ui界面设计模板WordPress能连接支付端口吗
  • 网站建设与维护ppt模板下载昆明 网站搭建
  • 手机网站建设浩森宇特摄影作品投稿平台
  • 网站类网站开发犯罪吗肇东网站建设云聚达
  • 云南通耀建设工程有限公司网站少儿编程老师需要具备什么条件
  • 陕西交通建设集团蓝商分公司网站wordpress增加模板
  • 创建网站目录权限建网站域名注册后需要
  • 现在还有企业做网站的吗浏览器登录入口
  • 如何进行目的地网站建设阳江网站建设推广
  • 移动网站搭建如何做高并发网站的架构设计
  • 网站特效网网站制作出租
  • 公司商标设计logo图案优化专业的公司
  • 郑州网站设计见效快微信公众平台小程序入口
  • 自动化毕设题目网站开发自家电脑做网站服务器w7花生壳
  • 网站文件目录结构wordpress 短信发送
  • 合肥专业做网站的公司东莞阳光网投诉电话