读书笔记:Delphi5开发人员指南 第二章(1)

最近上班总有一些零散的事情要处理,要负责同事们电脑的日常维护,以及一些软硬件方面的问题。所以就没有太多的时间用来读书。而且更加郁闷的是,上周末由于访问一个网站造成电脑中毒,尝试了很多方法清除都未能成功。病毒文件在安全模式下删除后重新启动又恢复了,修改注册表中的run也无效,几番修改也告失败。最终在判断方面出现错误,将系统文件误认为病毒文件删除,导致系统无法启动。最后只好ghost回去,无奈人太懒,平时ghost不及时,最终只恢复今年年初的一个ghost文件上。同时,上周所写的关于第二章的读书笔记也随着系统的恢复丢失。。。

惨痛教训:在桌面保存的文档丢失;favorite文件夹丢失;ftp地址丢失;一些程序需要重新安装。经过这次教训,让我更深刻体会到ghost文件的重要性,要常做常更新,有空就做备份。重要文件不要放到系统盘,不要放到桌面,如果放的话要注意备份Document  and Setting中的相关文件。

无奈,只得将所看的部分重新翻看一遍,但是笔记却简单了不少。

第二章  Object Pascal 语言(1)

一、注解

{ramrk}  or   (*remark*)   or   //remark

二、过程和函数特征

1Form1.show;==Form1.show();

2.重载: 要加关键字overload

   Procedure hello(I : Interger); overload;

               Procedure hello(S: String); overload;

               Procedure hello(D:Double); overload;

3.缺省值

缺省值要放在最后,在声明时赋值。

Procedure HasDefValSstring Iinteger0);

引用时,HasDefVal(‘hello’,26or HasDefVal(‘hello’)第二种为省略了默认值I

三、数据类型

Pascal的数据类型比较多,在给过程或者函数进行参数传递的时候,实参和形参必须实同样的数据类型。

如果在调用dll或者obj等不是delphi的函数时,注意数据类型匹配(见书P23

生存期自管理类型

除了A n s i S t r i n g以外, D e l p h i还提供了其他几种生存期自管理类型,这些类型包括:Wi d e S t r i n gVa r i a n tO l e Va r i a n ti n t e r f a c ed i s p i n t e r f a c e和动态数组。自动回收类型,使用时分配空间,离开作用域自动释放资源。

字符串:字符串的类型较多,存储空间和使用方法各有不同,使用时需注意。现在我们常用的就是String,编译器默认为就是AnsiString类型。该类型没有长度限制,同时与null结束的字符串相兼容。对于String类型也要注意存储空间的使用,如果指定了空间的大小,如strstring[8],当访问str[10]就会引起内存错误。

对于一般的应用,直接用string类型就好。

Variant类型:变量类型,使用的时候delphi会自动根据运算转换,但是如果都用Variant类型代替传统数据类型,会使程序代码加长,使其运行变慢。但在某些对数据类型要求很灵活的地方,用Variant是非常好的,也有很多针对Variant的函数可用(P37-38

Empty or Null 两者不同,Empty为空,而Null为非空,其值就为Null

四、用户自定义类型

1.记录:相当于C中的Struct

Type

Myrec=record;

     I: integer;

     D: double;

End;

使用

Var

N:myrec;

Begin

n.i:=23;

n.d=3.5;

end;

2.集合:pascal特有的数据类型,必须是有序数、字符、枚举值

Type

TcharSetSet of Char;

TENum=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

TEnumSet=Set of TEnum;//包括了TEnum值的任何组合,就是子集

TSubrangsetset of 1..10

注意,一个集合最多只能有255个元素

使用,

Var

        Charset:Tcharset;

        Enumset:TEnumset;

        Alphaset:set of ‘A’..’z’;

Begin

        CharSet:=[‘A’..’j’,’a’,’m’];

        Enumset:=[Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday];

        Alphaset:=[];//empty

End;

3.对象:可以当作是记录类型,只是它还包括了函数和过程

Type

    TChildObject=class(TparentObject);

    SomeVar: Integer;

    Procedure SomeProc;

End;

4.指针:只是了内存的位置。似乎并不是在Windows程序编写中所必须的,如果是底层开发可能用处大些。以前学C的时候也重点学了指针,不过现在也都全忘了。

第二章就不像第一章那样通俗易懂了,不过也还好,毕竟是一些语法规则之类的死东西,但是很多是要你实践之后才能明白并且深刻理解的。这些语法做为编程的基础是必须掌握的,但仅仅看书是不够的,必须要能把这些语法规则放在实际的编程中加以体会,目前,我也是缺少实际演练这一项。这就使我在编程的时候很被动,常常是碰到了要用某些语法规则的时候才去看,大大降低了工作的效率           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值