登录窗体LoginForm点击按钮后进入主窗体MainForm,为什么登录窗体不消失?
我的代码:procedure TLoginFrm.btnOKClick(Sender: TObject);
begin
if not Assigned(MainFrm) then begin
Application.CreateForm(TMainFrm,MainFrm);//主窗体非自动创建
try
MainFrm.ShowModal(); //用show系统跳回开发状态
finally
LoginFrm.close();
end;
end
else
MainFrm.ShowModal;
end;
--------------
打开mainform后loginform并未消失,在finally中加入LoginFrm.Free 运行出现EAccessViolation异常。
请问如何解决。
我的代码:procedure TLoginFrm.btnOKClick(Sender: TObject);
begin
if not Assigned(MainFrm) then begin
Application.CreateForm(TMainFrm,MainFrm);//主窗体非自动创建
try
MainFrm.ShowModal(); //用show系统跳回开发状态
finally
LoginFrm.close();
end;
end
else
MainFrm.ShowModal;
end;
--------------
打开mainform后loginform并未消失,在finally中加入LoginFrm.Free 运行出现EAccessViolation异常。
请问如何解决。
解决方案 »
- 问个计算结果输出的问题~~~~~~~~~~~~~~~~~~
- 救救命呀,大侠帮帮忙!100分求把 .txt 文件导入到数据表的最优方法.数据表导出到txt文件 的最优方法,请高手进.顶者有分.
- 在DBGrid中,如何判断焦点移动到了另一行?
- 安装时怎样配置ODBC数据源
- 图象横向和纵向的显示问题
- 如何追踪到TDBNavigator中nbPost按钮的错误?
- 简单问题
- 高分求教:关于DELPHI中Activexform的一个问题?(急,急)
- 有关ACCESS的问题!在线急等!
- 请帮帮我,Help me!!!
- Borland Delphi 6 中文企业版哪里有免费下载????????????????????500分
- 调试不通过,郁闷散分!
问题可能就是在这里,
到工程文件中看看,你到底先创建了那个窗体!showModal显示窗体是,如果窗体没有关闭,那么其他窗体不可以得到焦点,show就没有这个问题,可以 看看帮助,很有用的
你搜一下可以得到这方面的很多资料。
其实可以将上面的语句放到project中
让LoginFrm返回一个值加以判断,如果可以,继续
不可以,Exit
试试看
假设我定义
var f:TLoginFrm;
...
f.ShowModal;
你看看执行到“LoginFrm.close();”会出现什么样的问题!!!!
procedure TLoginFrm.btnOKClick(Sender: TObject);
begin
if not Assigned(MainFrm) then begin
Application.CreateForm(TMainFrm,MainFrm);//主窗体非自动创建
Close();
MainFrm.ShowModal(); //用show系统跳回开发状态
end;procedure TLoginFrm.FormClose(Sender: TObject; var Action: TCloseAction);
{
Action := caFree;
}
if not Assigned(MainFrm) thenelse 时,你没有close 你的 LoginFrm...不过你这种做法是不推荐的,一般主窗体是自动创建的,LoginFrm 在工程文件中创建,并用其逻辑影响Application的流程。
查查以前的帖子吧!这样的功能一般在.dpr文件中实现的