L
lk007
Unregistered / Unconfirmed
GUEST, unregistred user!
unit UMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBClient, MConnect, SConnect, StdCtrls;
type
TForm1 = class(TForm)
//相当于PUBLIC ,TFORM1实例化以后其它单元可见
ClientDataSet1: TClientDataSet;
Button1: TButton;
Edit1: TEdit;
SocketConnection1: TSocketConnection;
Button2: TButton;
//对象自带的过程声明在此列出
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
//以下为自定义的过程/方法/变量的声明
private
//在只本单元可见,在别的单元TFORM1的子类中不可见,在本单元中TFORM1的子类中可见
{ Private declarations }
pTestString:string;
function PrivateFun:string;
public
//在TFORM1实例化以后,以下的方法、过程、变量在别的单元可见,实例化之前不可见
pubTestString:string ;
//但是在方法前加CLASS 即成为类方法 相当于JAVA中的STATIC方法在实例化之前却可见
class function Classfun:string;//实例化前就可访问
function PublicFun:string;//实例化后可访问
function SameNameFun:string; //实例化可以访问
{ Public declarations }
end;
//^^^^^在别的单元对以上方法/过程/变量的引用都得加上"类名."的前缀 也就是"tform1."
// 除类访问外,其它的方法/过程/变量 都得在tform1实例化以后才可以访问
//vvvvvvvvv以下为全局部分也就是说与TFORM1类没有关系,但与单元名有关系.
//在别的单元对以下的方法/过程/变量的引用,可以不用加前缀直接使用,
//但当方法/过程/变量的标识符与单元本身中的标识符相同时,则要加"单元名."
//的前缀来特指
function pfunTest:integer; //别的单元可以访问
var
Form1: TForm1;
gTestString:string;
var a:integer;
//以上为声明部分, 以下为实现部分;对于方法/过程的实现都在IMPLEMENTATION下面
implementation
uses Ulogin;
{$R *.dfm}
//在实现部分定义的变量,只有本单元可见
var imTestString:string;
// 在实现部分定义的方法/过程的可见性取决于上面声明部分是否对其进行相应的声明
function PfunTest:integer;//别的单元可以访问,因为上面声明了.
//实现在全局部分声明的方法时,方法名前不要加"TFORM1."类名前缀
begin
result:=4;
end;
function tform1.publicFun:string; //本单元及其它单元在tform1实例化之后,才可访问
begin
result:='publicFun';
end;
function impFunTest1:String; //只有本单元可以访问
begin
result:='in implementation';
end;
function tform1.PrivateFun:string; //只有本单元可以访问,因为它是受保护的
//在本单元中TFORM1的子类可以访问,其它单元中TFORM1的子类不能访问
begin
result:='privateFun';
end;
class function tform1.classFun:string; //本单元及其它单元在tform1实例化之前就可访问,
begin
result:='classfun';
end;
function SameNameFun:string; //只在本单元可以访问
begin
result:='sameNameFun';
end;
function tform1.SameNameFun:string;//实例化后,可以访问
begin
result:='tform1.sameNameFun';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//在实现部分,局部方法名可以与TFORM1类中的方法名相同
//但在TFORM1类中(如事件中)不加前缀对同名方法的访问,将默认调用TFORM1类中的方法
// 这相当于JAVA类中的"就近访问"
showmessage(samenamefun);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin //,若要指定访问局部的同名方法,则必须在方法名前加上单位名前缀如(unit1.)
showmessage(umain.SameNameFun);
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBClient, MConnect, SConnect, StdCtrls;
type
TForm1 = class(TForm)
//相当于PUBLIC ,TFORM1实例化以后其它单元可见
ClientDataSet1: TClientDataSet;
Button1: TButton;
Edit1: TEdit;
SocketConnection1: TSocketConnection;
Button2: TButton;
//对象自带的过程声明在此列出
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
//以下为自定义的过程/方法/变量的声明
private
//在只本单元可见,在别的单元TFORM1的子类中不可见,在本单元中TFORM1的子类中可见
{ Private declarations }
pTestString:string;
function PrivateFun:string;
public
//在TFORM1实例化以后,以下的方法、过程、变量在别的单元可见,实例化之前不可见
pubTestString:string ;
//但是在方法前加CLASS 即成为类方法 相当于JAVA中的STATIC方法在实例化之前却可见
class function Classfun:string;//实例化前就可访问
function PublicFun:string;//实例化后可访问
function SameNameFun:string; //实例化可以访问
{ Public declarations }
end;
//^^^^^在别的单元对以上方法/过程/变量的引用都得加上"类名."的前缀 也就是"tform1."
// 除类访问外,其它的方法/过程/变量 都得在tform1实例化以后才可以访问
//vvvvvvvvv以下为全局部分也就是说与TFORM1类没有关系,但与单元名有关系.
//在别的单元对以下的方法/过程/变量的引用,可以不用加前缀直接使用,
//但当方法/过程/变量的标识符与单元本身中的标识符相同时,则要加"单元名."
//的前缀来特指
function pfunTest:integer; //别的单元可以访问
var
Form1: TForm1;
gTestString:string;
var a:integer;
//以上为声明部分, 以下为实现部分;对于方法/过程的实现都在IMPLEMENTATION下面
implementation
uses Ulogin;
{$R *.dfm}
//在实现部分定义的变量,只有本单元可见
var imTestString:string;
// 在实现部分定义的方法/过程的可见性取决于上面声明部分是否对其进行相应的声明
function PfunTest:integer;//别的单元可以访问,因为上面声明了.
//实现在全局部分声明的方法时,方法名前不要加"TFORM1."类名前缀
begin
result:=4;
end;
function tform1.publicFun:string; //本单元及其它单元在tform1实例化之后,才可访问
begin
result:='publicFun';
end;
function impFunTest1:String; //只有本单元可以访问
begin
result:='in implementation';
end;
function tform1.PrivateFun:string; //只有本单元可以访问,因为它是受保护的
//在本单元中TFORM1的子类可以访问,其它单元中TFORM1的子类不能访问
begin
result:='privateFun';
end;
class function tform1.classFun:string; //本单元及其它单元在tform1实例化之前就可访问,
begin
result:='classfun';
end;
function SameNameFun:string; //只在本单元可以访问
begin
result:='sameNameFun';
end;
function tform1.SameNameFun:string;//实例化后,可以访问
begin
result:='tform1.sameNameFun';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//在实现部分,局部方法名可以与TFORM1类中的方法名相同
//但在TFORM1类中(如事件中)不加前缀对同名方法的访问,将默认调用TFORM1类中的方法
// 这相当于JAVA类中的"就近访问"
showmessage(samenamefun);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin //,若要指定访问局部的同名方法,则必须在方法名前加上单位名前缀如(unit1.)
showmessage(umain.SameNameFun);
end;
end.