private
FUserID : String;
public
function GetReg(): String;implementation
function GetReg(): String;
var
Reg: TRegistry;
begin
Reg:= TRegistry.Create;
FUserID := Reg.ReadString(FKeyUsrID) ;
end;编译时出错,提示:undeclared identifier:'FUserID'
FUserID我已经声明为私有成员变量了,为什么还提示出错?
FUserID : String;
public
function GetReg(): String;implementation
function GetReg(): String;
var
Reg: TRegistry;
begin
Reg:= TRegistry.Create;
FUserID := Reg.ReadString(FKeyUsrID) ;
end;编译时出错,提示:undeclared identifier:'FUserID'
FUserID我已经声明为私有成员变量了,为什么还提示出错?
该函数不是成员函数,是全局函数。而你定义的FUserID是类成员函数。
所以全局函数要先找到类的指针,才能调用FUserID.
如:typeTForm...........
private
FUserID : String;
public
function GetReg(): String;
function GetReg(m_frm:TForm): String;
var
Reg: TRegistry;
m_frm1:TForm;
begin
Reg:= TRegistry.Create;
m_frm1:=m_frm;
m_frm1.FUserID := Reg.ReadString(FKeyUsrID) ;
end;
private
FUserID : String;
public
function GetReg(): String; implementation
function GetReg(): String;
var
Reg: TRegistry;
begin
Reg:= TRegistry.Create;
form_login.FUserID := Reg.ReadString(FKeyUsrID) ;
end;这是按照你的方法解决的,但我还是有疑问,
第一,function GetReg(): String;该函数不是成员函数吗?我是定义在public下的,虽然别的类也可以访问,但这个函数不也是公共成员函数吗?为什么会是全局函数?第二,如果我把function GetReg(): String;放在private里面,应该是成员函数了吧,为什么也不行?
就把他单成了局部变量,但是这个变量没有定义。本人菜鸟说错无怪,(学习Delphi一个星期)
function GetReg(): String;
var
Reg: TRegistry;
begin
Reg:= TRegistry.Create;
form_login.FUserID := Reg.ReadString(FKeyUsrID) ;
end; 这种方法才是定义类方法:
type
TForm1 = class(TForm)
private public
function GetReg(): string; end;implementationfunction TForm1.GetReg(): String;
begin
...
end;