在一个单元文件里面。我看到了两个名字相同的过程声明,一个是写在public里面,另一个是写在var里面。请问,这两个位置声明有何区别,特别是声明在var里面的过程。麻烦前辈大哥解释一下。谢谢~var
ComData: TComData;
procedure changesql(const SqlStr:String;Dataset:TCustomADODataSet);
procedure execsql(Sql: WideString);
procedure get_Look(look_type: string);
function get_lookUp(const aText, lookup_type: string): boolean;
function get_lookUp_exit(sender: TWinControl; const aText, lookup_type: string): boolean;
function DblClick_help(filterStr: string;
aDocFlag: integer; aDefaultSql: string = ''): boolean;
function Exit_help(sender: TWinControl; filterStr: string;
aDocFlag: integer; aDefaultSql: string = ''): boolean;
procedure Get_subinv1(sender: TCustomComboBox);
procedure Get_subinv;
function get_Servertime: TdateTime;
function has_on_hand(item_id: integer; subinv, uom: string): boolean;
ComData: TComData;
procedure changesql(const SqlStr:String;Dataset:TCustomADODataSet);
procedure execsql(Sql: WideString);
procedure get_Look(look_type: string);
function get_lookUp(const aText, lookup_type: string): boolean;
function get_lookUp_exit(sender: TWinControl; const aText, lookup_type: string): boolean;
function DblClick_help(filterStr: string;
aDocFlag: integer; aDefaultSql: string = ''): boolean;
function Exit_help(sender: TWinControl; filterStr: string;
aDocFlag: integer; aDefaultSql: string = ''): boolean;
procedure Get_subinv1(sender: TCustomComboBox);
procedure Get_subinv;
function get_Servertime: TdateTime;
function has_on_hand(item_id: integer; subinv, uom: string): boolean;
写在外面的就是一般的函数
是,我就是不理解声明在var里面的他是什么意思?
private
{ Private declarations }
procedure SetConnectd(source:string);
public { Public declarations }
AccountList: TStringList;
Procedure SendCloseMsg;
procedure SetBmp(Flag:integer;FileName:String;dataset:TADODataSet);
procedure saveBmp(FileName:String;dataset:TADODataSet);
procedure DeleteBmp(FileName:String);
procedure LoadBmp(FileName:String;dataset:TADODataSet);
function CheckServer: boolean;
procedure ResultData(const SqlStr:String;Dataset:TCustomADODataSet);
procedure changesql(const SqlStr:String;Dataset:TCustomADODataSet);
procedure ShowMessageing(MsgStr:String; TitleStr:String);
procedure checktime(sender2, sender1: TObject);
function SubDateTime(DateTime1,DateTime2:string):double;
function IsSunday(DateTime1:TDateTime):boolean;
function IniAword(Aword:char):char;
procedure ChoDatetime(sender:Tobject);
Function JMString(const Caption:String):String;
procedure GetAccount;
procedure Set_System;
end;var
ComData: TComData;
procedure changesql(const SqlStr:String;Dataset:TCustomADODataSet);
procedure execsql(Sql: WideString);
procedure get_Look(look_type: string);
function get_lookUp(const aText, lookup_type: string): boolean;
function get_lookUp_exit(sender: TWinControl; const aText, lookup_type: string): boolean;
function DblClick_help(filterStr: string;
aDocFlag: integer; aDefaultSql: string = ''): boolean;
function Exit_help(sender: TWinControl; filterStr: string;
aDocFlag: integer; aDefaultSql: string = ''): boolean;
function get_Servertime: TdateTime;
function has_on_hand(item_id: integer; subinv, uom: string): boolean;
function update_on_hand(item_id: integer; subinv, uom: string
;quantity: double): string;
function insert_on_hand(item_id: integer; subinv, uom: string
;quantity: double): string;
implementation
var 只说明 ComData: TComData 是变量,
public 中的 procedure changesql(const SqlStr:String;Dataset:TCustomADODataSet);
是一个类的特性(功能)实现
而后面的 procedure changesql(const SqlStr:String;Dataset:TCustomADODataSet);只是一个在该单元中可以使用的过程,
对public中的changesql使用应是这样 xxxx.changesql(SqlStr , Dataset) ;xxxx是类名称
对后面的changesql使用应是这样 changesql(SqlStr , Dataset) ;
unit1中
public
{ Public declarations }
procedure showoknew;
end;
var
Form1: TForm1;
procedure showok;unit2中,引用unit1
可以直接访问showok,但是必须通过from1.showoknew来访问showoknew
前者为全局,后者为局部