delphi单元文件

想学习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.//每个单元固定结束标记

这个文件,作为一个单元,基本涉及到了所有的知识点。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值