想学习delphi,打开IDE,首先看到就是主窗口的单元文件。入门第一步就是搞清楚,这个单元文件的结构。很多书上没说那么清楚。最近学习之后,基本搞清它的结构。注释如下:
unit Unit1;// 单元名称,须与单元文件名相同(此处单元文件名是:Unit1.pas)
interface //接口起始标记
uses //引用的其他单元标记,比如在Unit1中,要引用窗口2(单元文件名为Unit2.pas),如下:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Unit2;
type //定义类,常量,枚举,子界,集合类型,都放在这个标记后
TForm1 = class(TForm)//定义类,class是定义类的关键字
Button1: TButton; //类的成员变量
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);//成员方法,无返可参数,因此用procedure,如果有返回值,须用function定义
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private //私有变量和方法
{ Private declarations }
public //公有变量和方法
{ Public declarations }
function add(a:Integer;b:Integer):Integer;//有返回值的方法
end;//一个类定义完毕
//子界类型
d = 1..2;
//枚举
sex = (man,woman);
//集合
e1 = set of byte;
e2 = set of char;
e3 = set of 1..7;
//以上几种类型,须放在type后面
var //本单元内的全局变量
Form1: TForm1;//默认被编译器创建(可参考Project.dpr文件),否则要调用Create创建实例
strName : string;
//数组类型
c : array[0..10] of Char;
const //本单元内全局常量,注意用=
a = 20;
b = 'hello';
//procedure关键字,标记单元内的全局过程声明。
//如果想定义有返回值的全局函数,须用function定义
//声明在此处,则可以被其他单元调用,如果声明在implementation后,则只能在此单元内被调用
procedure msg(str1:string);
implementation//实现代码,也是Interface的结束标志,也是类的成员方法,实现代码的开始处
{$R *.dfm} //自动生成代码
//自定义过程的实现
procedure msg(str1:string);
begin
ShowMessage(str1);
end;
//类成员方法实现
function TForm1.add(a:Integer;b:Integer):Integer;
begin
Result := a+b;//返回值固定赋给Result
end;
//下面是几个按钮的点击事件
procedure TForm1.Button1Click(Sender: TObject);
begin
strName := 'hello';//全局变量
msg(strName);//调用自定义方法
end;
procedure TForm1.Button2Click(Sender: TObject);
var
n:Integer;//声明局部变量,位于方法或事件的内部
begin
n := add(12,90);//调用类成员函数,因为类内部单用,否则要加上类名:TForm1.add
ShowMessage( IntToStr(n) );
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
//动态创建窗口
Unit2.Form2 := Unit2.TForm2.Create(nil);
Unit2.Form2.Show();//单用另一个单元的类的方法
end;
procedure TForm1.Button4Click(Sender: TObject);
var
e :e1;
begin
c[0] := 'A';
showmessage(c[0]);
e :=[1,2,3,4,5,6];
e := e +[7];
end;
end.//每个单元固定结束标记
这个文件,作为一个单元,基本涉及到了所有的知识点。