Delphi 2007 学习笔记,1

由于开发桌面程序的需要,准备学习一个新的开发工具,理所当然地想起了"聪明的程序员"所使用的Delphi.

安装之后,用惯了VS+MSDN的我,对着Delphi 2007精简的文档,立刻就明白了为什么Borland会被MS打败: 在文档里甚至找不到Pascal标准库Writeln的文档! 关于IO, 也只有一篇文章提到了几个函数名和简介,参数信息都没有.没错,在标准文档里你再也找不到其它相关的信息了,除了这几个函数名.用惯了VS的人,你可以想一下如果连System.Console.WriteLine()这样的函数都没有文档,你是什么感觉...

好吧,不发牢骚了,现在创建第一个控制台项目,打印Hello world.

第一个发现是,Delphi里用单引号而不是双引号来标注字符串: Writeln("Hello, world");

第二个发现是,我需要到处寻找类似Console.ReadLine()的功能--文档里是不会记录这么一个小问题的,CodeGear可是为企业级开发者做IDE的.当然,我猜到了与Writeln相对应,这个函数应该叫Readln,但是我猜不到它需要什么形式的参数,谁知道它是不是像C里的scanf那样要求一个指针啊什么的?试了一下,IDE只告诉我写错了,但是却没能告诉我错在哪.几分钟后,在电子书"Inside Delphi 2006"里搜索Readln,看到了对它的一次使用,就是光秃秃的一个"Readln;",不过正好适合我停下程序观看输出窗口的需要.

第三个发现是IDE的重构功能非常弱.比如"Extact Method",它就直接把你选中的代码扔到一个新的procedure里,用它的名字替换原处的代码就算了事,对变量的上下文引用关系一点也不做处理.天啊,这样你也敢自称"Refactor"?

不爽的地方还有一个:编辑器不会自动格式化代码--我用VS时可是没事就按个Ctrl+K,Ctrl+D的人,这一点确实很让人郁闷.

可能今天我没试用Delphi的强项--桌面RAD开发,所以才会发现这么多的不爽吧.哪位有经验的介绍一下在桌面开发上Delphi和WinForms哪个更方便?

发完了牢骚,还是记录一下今天学到的要点吧:

  • 不区分大小写;
  • 赋值操作符是:=,不是=;
  • 变量定义和很早以前的C一样,只能放在块顶端;
  • 子过程分两种:有返回值的叫函数(function),没返回值的叫过程(procedure);
  • 函数不用return语句提供返回值,而是给Result赋值.