以下是双击用户管理按钮打开用户管理界面代码:
if Frm_User = nil then
Frm_User := tFrm_User.create(self);
Frm_User.showmodal;
提示错误:access violation at address 00628C8E in module "test.exe" Read of address 00000024这种窗口打开错误怎么解决,我前几天还是好好的,怎么突然就出现这种提示?还请大哥大姐们指点一下.
if Frm_User = nil then
Frm_User := tFrm_User.create(self);
Frm_User.showmodal;
提示错误:access violation at address 00628C8E in module "test.exe" Read of address 00000024这种窗口打开错误怎么解决,我前几天还是好好的,怎么突然就出现这种提示?还请大哥大姐们指点一下.
解决方案 »
- 百分求 delphi 登录系统
- 数组作为参数传递
- 如何将图片文件插入到EXECL文件中的某一个Cells中?急.....
- 程序关闭了,但任务管理器中进程却还存在
- 为什么 TRegistry.RestoreKey 不能恢复 TRegistry.SaveKey 所保存的键哪?????
- 帮帮忙!有分拿!!
- 吐血问题: 如何实现在同一行中将内容打印两次(打印机不走纸,且无法用TEXTOUT)
- 为什么有的语句不执行。半小时结贴
- 窗体在任务栏中不可见,不在任务栏外,是隐藏,在后台工作
- xe6下如何安装Ehlib?
- 用wordapplication如何获得一个文档的页数?
- 全局变量使用过程中系统无法使用问题.
Frm_User := tFrm_User.create(self);Frm_User.showmodal;
FreeAndNil(Frm_User);
问题出在if Frm_User = nil then上面,因为第一次的时候确实Frm_User = nil,而第二次的时候虽然Free了,但是已经不是nil了,所以没有创建,再次ShowModal的时候就当然出错了。我一般都是这么写
procedure TForm1.Button1Click(Sender: TObject);
begin
With tFrm_User.create(Application) do
Try
ShowModal;
finally
free;
end;
end;
改成foxyy8888(SY强身,YY强国) 所提供的方法,变成下面提示:
access violation at address 00404912 in module "test.exe" Read of address 0000001D
我在tFrm_User的创建过程中有以下代码:
procedure TFrm_User.FormCreate(Sender: TObject);
begin
showmessage('123');
dm.ADQUser.Active := false;
dm.ADQUser.Active := true;
end;
点击用户按钮,测试弹出框123正常,以下就不正常,也就是问题出在数据库联接上,请问该怎么写?
foxyy8888(SY强身,YY强国) 所提供的方法是有效的,其它兄弟的方法有点差入,但出现上述新问题,还请多帮忙.
begin
if not Assigned(Frm_User) then
Frm_User := tFrm_User.create(self);
try
if Frm_UserShowModal = mrOK then
begin
//……
end;
finally
FreeAndNil(Frm_User);
end;
end;