我用ShorModal出错,那位大牛遇到过?(5分)

  • 主题发起人 主题发起人 pickup
  • 开始时间 开始时间
P

pickup

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序有一个登录输入密码的Form我用ShowModal实现的?
本来是好的但是昨天突然开始出错?不知道什么原因,而且报的
错误是access voilation
只有5分了抱歉
 
你看这个Form在那定义的?
 
在我的过程里定义的,有问题吗?
procedure TSMSSrvFrm.tbtnLoginClick(Sender: TObject);
var
i:integer;
LoginFrm:TLoginFrm;
tmpStr:String;
tmpPC:PChar;
tmpUser:TUser;
begin
try
if not isLogin then
begin
LoginFrm:=TLoginFrm.Create(self);
LoginFrm.ShowModal;
if LoginFrm.isQualified then
begin {登陆成功}
{开通服务}
SystemRes.curUser:=LoginFrm.user;
self.menuSvrMng.Enabled:=true;{打开服务}
self.tbtnStart.Enabled:=true;
self.tbtnLogin.Hint:='已登录';
isLogin:=true;
SystemRes.OPLogWriter.WriteLn('用户登录成功,用户:'+LoginFrm.user.USER_NAME);
end
else
begin {登陆失败}
SystemRes.OPLogWriter.WriteLn('用户登录失败');
end;
LoginFrm.Free;
end
else
begin
tmpStr:='系统已经登录,当前用户:'+SystemRes.curUser.USER_NAME;
tmpPC:=@tmpStr[1];
Application.MessageBox(tmpPC,'提示信息',MB_OK+MB_ICONEXCLAMATION);
end;
except
on Exception do
begin
tmpStr:='系统已经登录,当前用户:'+SystemRes.curUser.USER_NAME;
Application.MessageBox(@tmpStr[1],'提示信息',MB_OK+MB_ICONERROR);
end;
end;
end;
 
请检查 你的这个要SHOWMODAL的FORM是否在写
Form.ShowModal之时已经创建好了,还有你是登陆窗口
这个应该用到数据库,数据库是不是放在DATAMODEL里
DATAMODEL这时候也创建好了么?
 
可能你在loginfrm中调用了loginfrm.free或其他free这个loginfrm的操作。
 
当然建好了,前面的第三条消息是我的源程序。
而且这个程序以前是好的。不知道什么时候
开始出问题了。
 
我的数据库连接是通过父窗口传过去的。所以这些都没有问题。
问题是它曾经对过。
 
最好吧 LoginFrm.Free;换成CLOSE
在其 CLOSE事件里写 上 ACTION:=CAFREE
再试下
 
源代码看上去没什么问题,但我同意楼上说的。
 
接受答案了.
 

Similar threads

D
回复
0
查看
878
DelphiTeacher的专栏
D
D
回复
0
查看
847
DelphiTeacher的专栏
D
D
回复
0
查看
797
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部