高中时期,有幸上过2节pascal的课,老师讲了一些英文(实为关键字和变量),介绍了二进制及其计算,然理解不透,遂弃之。
十几年后,因工作需要维护一个上个世纪的 delphi 工程,故学之,但已无甚意义,简记之,供自学用。
技术总结
0、安装IDE。
1、看基础语法(不要求短时间内完全了解)。
2、IDE使用,快捷键。
3、各控件使用、属性等,弹出窗口,多窗口显示,logo,标题,最大/小化。退出程序。对话框弹出。
基础语法
杂项
1 | 变量似乎不区分大小写。 |
function和procedure
function 为函数,必须有返回值,返回值固定名称为result。procedure 为过程,无返回值。个人理解中,两者表现形式似乎没有区别。
非主函数中,用exit退出当前函数,相当于“返回”,注意,如果要返回值,在此之前要赋值给result。
过程没有返回值,函数有。似乎没有参数,可以不写()
。但写上也没问题,为了区别,写之。
参数如要传出,前加var,类似C++的引用。
多个相同类型参数,可共用一个类型。如a, b:integer
,golang似乎参考这种做法。
函数示例:
1 | function foobar(a, b:integer): string; |
指针示例:
1 | function test2():integer; |
编程小结
界面编程中,dfm文件中的中文,使用unicode(可能其它的,待确认),已不可直接观察。无法搜索关键字。对于多窗口工程,较麻烦。
界面入口为 FormCreate,要设置响应事件,否则不生效的。
生成可执行文件目录配置(release或debug),在IDE中选,保存到dproj文件。
片段
1 | 显示信息对话框: |
1 | 数字转字符:IntToStr(100) |
1 | STR := Format('111111111111111111'+ |
枚举:
1 | // 枚举和数组示例 |
自定义类方法
1、新建单元,保存,在工程中添加单元。
2、定义类:
1 | type |
实现方法:
1 | function CFoo.FooTest(value: integer): integer; |
3、使用。在uses中引入单元名。定义类,调用类方法: a := myFoo.FooTest(100);
字符串操作
1 | 如果要使用LeftStr,RightStr,MidStr必需引用系统单元StrUtils; |
控件及其它缩写
1 | 控件类名及解释 缩写 |
注:有时文本编辑框缩写为txt
,此为个人MFC、Qt编程之习惯。