Delphi的基础研究记录

当我们熟悉了一个第一语言后去学习另一种语言,往往但会想到 第一语言的功能。Delphi这门语言基于 VB 和 VC++ 之间的一个语言,非常不错,很快上手了。
下面定义个自定义模块。不过我喜欢叫 单元模块。 因为 Delphi 的程序代码是 由N个单元构成,其实这里的单元就是 VB里面的模块差不多。下面的这个单元模块,里面没有对象实现。但是函数和过程,还有全局变量和全局变量初始化和全局常量。
这里有一个错误比较特殊,就是 当你写了关键字后,但是没有 写接下来的匹配的代码他就会提示
Identifier expected but 'PROCEDURE' found错误
Identifier expected but 'function' found错误
比如你写了uses但是没写 单元模块名,那就直接给你报错。
你写了 var 但是没写 变量声明,那也直接给你报错。
- unit MyMode; //本单元模块名 为 MyMode ,如果要使用本单元模块中的全局变量 或 函数 过程 可以 将本单元模块名 写到 uses 关键字下面 即可。
-
-
- //接口部分
- interface
-
- //引用其他单元模块
- uses
- Dialogs;
-
- // 声明函数或过程
- function TestA(s:string): string;
- procedure TestB(s:string);
-
- procedure TestC();
-
-
- //声明全局变量
- var // var 关键字下无 变量 声明,就不要写! 会造成Identifier expected but 'PROCEDURE' found错误 或 Identifier expected but 'function' found错误
-
- g_abc:string = 'g_abc=模块中全局变量测试'; //声明全局常量,同时赋值
- g_efg:string ;
- const //全局常量的声明
- g_hij:string = 'g_abc=模块中全局常量测试'; //声明全局常量,同时赋值
-
- //实现
- implementation
-
- //一、实现函数 TestA
- function TestA(s:string):string;
- var
- a: String;
- begin
- a:='提示内容为 ';
- g_efg:= 'g_efg=模块中的全局变量已被修改'; //这个只是测试,说明政府变量是全局的,不仅可以再本单元里面可以被修改,还可以被外部的程序所修改
- // ShowMessage( a+s) ;
- result:=g_abc;
- end;
-
- //二、实现函数 TestB
- procedure TestB(s:string);
- begin
- ShowMessage('你好 '+s);
- end;
-
-
- //三、实现过程 无参数的过程
- procedure TestC();
- begin
- ShowMessage('你好');
- end;
- end.
那么以上的函数和变量 是要在 From1窗体里面被调用的,我们怎么调用了。下面的代码
- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls,MyMode;
- //如果你将一个 按钮 放进一个窗体,你就自动地使用了StdCtrls单元,因为TButton构件在StdCtrls中定义
- type
- TForm1 = class(TForm)
- Button1: TButton;
- Button2: TButton;
- Button3: TButton;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.dfm}
-
- procedure TForm1.Button1Click(Sender: TObject);
- var
- ret:string;
- begin
-
- ret := MyMode.TestA('111');
-
-
- ShowMessage(ret); // ShowMessage 这个函数在 Dialogs 这个单元模块里面
-
-
-
- end;
-
-
- // API函数调用
- procedure TForm1.Button2Click(Sender: TObject);
- var
- a:HWND; //Delphi 也有 句柄这个数据类型
- begin
- a:= 0;
- MessageBoxA(a,'今天天气不错','侠客提示',0); // MessageBoxA 函数在 Windows这个单元模块里面
- end;
-
- procedure TForm1.Button3Click(Sender: TObject);
- var
- ret:string;
- begin
- MyMode.
-
- MyMode.g_abc := '1111111111111111111';
- ret := MyMode.g_abc ; //这个据说是常量,但是我这边可以修改
-
-
- ShowMessage(ret); // ShowMessage 这个函数在 Dialogs 这个单元模块里面
- end;
-
- end.