报错'cannot change visible in onshow or onhide'

问题描述:

关闭程序的时候需要修改modalresult值,

原来把加载的事件写在MailForm的onshow事件里总是报‘cannot change visible in onshow or onhide‘;

解决方法:

不要把事件写在onshow里面,改到oncreate事件里即可:

 

关闭窗体通过修改modalresult值的方法:

procedure TFLogin.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Self.ModalResult=mrCancel then
 begin
 if MessageDlg(‘确定要退出?‘,mtConfirmation,[mbYes,mbNo],0)=mryes then
 begin
 Self.close;
 Application.Terminate
 end
 else
 Self.ModalResult:=0;
 end;
end;
procedure TFLogin.btn2Click(Sender: TObject);
begin
 if MessageDlg(‘确定要退出?‘,mtConfirmation,[mbYes,mbNo],0)=mryes then
 begin
 Self.ModalResult:=mrCancel;  //关闭窗体
 Application.Terminate;   //结束程序
 end
else
 Self.ModalResult:=0;   //停留在登陆窗口
end;

 

登录窗体,登陆成功判断并修改modalresult:

procedure TFLogin.btn1Click(Sender: TObject);
begin
with frmDataPool.qry用户账号表 do
begin
  Close;
  SQL.Text:=‘select * from 用户账号表 where admid = :admid ‘;
  Parameters.ParamByName(‘admid‘).Value:=edtAdmid.Text;    //为admin参数赋值;
  Open;
end;
  if frmDataPool.qry用户账号表[‘admps‘]=null then  //如果账号查找不到,说明账号错
  begin
    ShowMessage(‘账号不存在‘);
    Exit;
  end;
  if frmDataPool.qry用户账号表[‘admps‘] <> edtadmps.Text then
  begin
    ShowMessage(‘密码错‘);
    exit;
  end;
  Self.ModalResult:=mrOk;//对话框mrok返回
  ShowMessage(‘登录成功!‘);

end;

 参考答案:http://www.rwtext.com/text.asp?id=9731

【编译错误解析】提示Cannot change Visible in OnShow or OnHide 的原因及解决方法

Cannot change Visible in OnShow or OnHide 的意思是:不能在 OnShow 或OnHide事件中修改显示状态

OnShow ,OnHide 本身就是指定显示与否,不可以在这样的事件中用.Visible .

就比如吧Onshow中你用Form1.Visible := False , 事让窗体在显示的时候不显示,你这不是让编译器为难么?

这就是为什么可以在OnCreate中用,不能在OnShow中用.

报错'cannot change visible in onshow or onhide'

时间: 2024-10-14 07:43:17

报错'cannot change visible in onshow or onhide'的相关文章

maven报错cannot change version of project facet

用Eclipse创建Maven结构的web项目的时候选择了默认的catalog,由于这个catalog比较老,用的servlet还是2.3,而现在最少也是2.5,所以经常会出现问题,在Projecdtfaces里面修改Dynamic web model为2.5的时候就会出现Cannot change version of project facet Dynamic web module to 2.5 其实在右边可以看到改到2.5需要的条件以及有冲突的facets,解决这个问题的步骤如下: 1.把

华硕笔记本U盘启动系统/WinPE报错。Windows failed to start. A Recent hardware or software change might be the cause.

最近在整一台华硕笔记本,大概有5年寿命了吧,质量还行,由于系统出了问题,打算用自制U盘WinPE进去修复一下.按照个人经验,在主板设置里启用了USB启动选项,并且设置USB启动顺序为第一个,可是进系统居然报错,如下图所示. Windows failed to start. A Recent hardware or software change might be the cause. To fix the problem: 1. Insert your windows installation

mysql报错Packet for query is too large (12238 &gt; 1024). You can change this value

今天将项目部署到linux服务器的时候莫名其妙的报一些错误,可是在本地啥错没有,通过实时查看tomcat 的日志之后发现报错是: 实时查看日志: 1.先切换到:cd usr/local/tomcat5/logs 2.tail -f catalina.out 3.这样运行时就可以实时查看运行日志了 发现错误: rg.springframework.dao.TransientDataAccessResourceException: ### Error querying database. Cause

ssh登录locale报错:cannot change locale (zh_CN.UTF-8): No such file or directory

一.登录ssh报错: Last login: Tue Apr 23 03:42:01 2019 from 172.28.146.109 -bash: warning: setlocale: LC_ALL: cannot change locale (en_CN.UTF-8): No such file or directory -bash: warning: setlocale: LC_ALL: cannot change locale (en_CN.UTF-8) -bash: warning:

mysql workbench 报错:Can&#39;t analyze file, please try to change encoding type...

workbench 识别csv第一行作为column名,column名不能为中文,所以报错.解决方法:csv第一行改为英文列名,再进行导入. mysql workbench 报错:Can't analyze file, please try to change encoding type... 原文地址:https://www.cnblogs.com/HeartBlood/p/11888165.html

【软件工程 - SSM网页制作】报错解决 - Description Resource Path Location Type Cannot change version of project fac(导入maven项目出现红叉问题)

MAVEN项目报错解决 问题描述 导入项目时候出现 Description Resource Path Location Type Cannot change version of project facet Dynamic Web Module to 2.5错误 分析与解答 这是由于你的 Maven 编译级别是 jdk太低了 1.在eclipse的工程上选择属性,在选择Project Facets里面中选择Dynamic web Module,将版本改成2.5 如下图: 2.在工程目录下(项目

rman还原数据库数据库报错问题处理

报错1.数据库开启block change tracking ,恢复完成后打开因文件不存在报错. RMAN> alter database open resetlogs; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: ========

DataTables学习:从最基本的入门静态页面,使用ajax调用Json本地数据源实现前端开发深入学习,根据后台数据接口替换掉本地的json本地数据,以及报错的处理地方,8个例子(显示行附加信息,回调使用api,动态显示和隐藏列...),详细教程

一.DataTables  个人觉得学习一门新的插件或者技术时候,官方文档是最根本的,入门最快的地方,但是有时候看完官方文档,一步步的动手写例子,总会出现各种莫名其妙的错误,需要我们很好的进行研究出错的地方. 官方网站(中文):http://datatables.club/ 官方网站:https://www.datatables.net/  二.简单的例子 怎样简单地使用DataTables?使用下方简单的几行代码,一个方法初始化table. $(document).ready(function

启动MYSQL 57 报错“The service MYSQL57 failed the most recent........等”的问题解决方式!

每天开机之后,启动MYSQL Notifier就报错,第一次出现重启电脑后解决,后面的几天老是出现,重启电脑好几次都没有解决,感觉很烦人,一定要搞定这个问题找到原因,于是有了下文....... 启动MYSQL 57报错信息"The service MYSQL57 failed the most recent status change request with the message time out has expired and the operation has not been comp