详细情况:
一个主窗体和一个MDIChild窗体.
在主窗体左边有一个treeview控件,它会在主窗体初始化时会自动加载资料!
MDIChild窗体中在很多Edit控件和一个DBGrid窗件!
点击TreeView控件中某一个特定选项A后,调用出MDIChild窗体.MDIChild窗体中DBGrid控件会显示相应的数据。
好到为此,还正常。
问题就是:再点击主窗体中TreeView控件任意地方后,再直接点击MDIChild窗体中DBGrid控件,DBGrid控件没有任何反映,
那解决这个问题,只先点击MDIChild窗体其它控件后,才能点击DBGrid控件! 为什么会这样,以前不会这样啊!我以为是TreeView控件中点击事件有问题,但是我取消点击事件后,同出现上面的问题!
一个主窗体和一个MDIChild窗体.
在主窗体左边有一个treeview控件,它会在主窗体初始化时会自动加载资料!
MDIChild窗体中在很多Edit控件和一个DBGrid窗件!
点击TreeView控件中某一个特定选项A后,调用出MDIChild窗体.MDIChild窗体中DBGrid控件会显示相应的数据。
好到为此,还正常。
问题就是:再点击主窗体中TreeView控件任意地方后,再直接点击MDIChild窗体中DBGrid控件,DBGrid控件没有任何反映,
那解决这个问题,只先点击MDIChild窗体其它控件后,才能点击DBGrid控件! 为什么会这样,以前不会这样啊!我以为是TreeView控件中点击事件有问题,但是我取消点击事件后,同出现上面的问题!
解决方案 »
- delphi中定义过程(函数) 和 类的问题
- 如果在点关闭后执行完一段音乐后关闭
- 如何删除链表中的某一个节点
- 请教关于文件操作的问题
- 关于清华紫光输入法与delphi程序的兼容性问题
- 怎么读取oracle的blob类型字段?
- 一个关于远程数据库共享的问题,在线等,,急啊,想了好几天拉,
- 我想学delphi 不知道它的优势和缺点都有哪些呢? 多谢!
- 我是新手:超菜问题,小弟在用EhLib时不知什么叫lookup型字段是什么意思???请大家帮个忙~!
- airhorse:你有多少个id 我冒犯过你那个id 怕怕中~~~~~~~~
- dbe中的table的updatemodue属性可以控制update sql语句的where语句那么ado中adotable是怎么控制的
- 如何关闭MDIFORM中的所有子窗口(MDICHILD)?
var
i:integer;
SQLString:string;
begin
if MainTreeView.Selected=nil then exit;
if MainTreeView.Selected.Level=0 then
begin
if Trim(MainTreeView.Selected.Text)='业务受理' then
begin
Current_YWBH:='';
application.CreateForm(TFrmSelectYWSQ,FrmSelectYWSQ);
FrmSelectYWSQ.ShowModal;
if YW_FormClass<>nil then
begin
HJ_FormClass:=TFrmHJ_SQ;
HJ_Form:=FrmHJ_SQ;
Current_SQBH:='';
if YW_FormClass=TFormYHXZ then
openform(TFormYHXZ,FormYHXZ,self,true)
end
else begin
HJ_FormClass:=nil;
HJ_Form:=nil;
HJ_FormClass:=nil;
HJ_Form:=nil;
Current_HJBH:='';
Current_SQBH:='';
Current_YWBH:='';
end;
end;
end
else if MainTreeView.Selected.Level=1 then
begin
OpenForm(TFrmYWLL,FrmYWLL,self,true);
if Trim(MainTreeView.Selected.Parent.Text)='日常营业' then
begin
FrmYWLL.ADOQuery_YWLL.Close;
for i:=1 to 16 do
if POS(L_YWMC[i],Trim(MainTreeView.Selected.Text))>0 then
begin
with FrmYWLL.ADOQuery_YWLL do
begin
close;
sql.Clear;
SQLString:='Select YK_YWSQSLB.SQBH,YK_YWSQSLB.LB,YK_ZD_YWDY.DES as YWMC,YK_YWSQSLB.YDBH,YK_YWSQSLB.ZXXH,YK_YWSQSLB.HJBH,YK_ZD_HJDY.DES as HJMC,'
+'case when YK_YWSQSLB.ZXZK=''0'' then ''待处理'' when YK_YWSQSLB.ZXZK=''1'' then ''已处理通过'' when YK_YWSQSLB.ZXZK=''2'' then ''未通过退回'' end as ZXZK ,'
+'case when YK_YWSQSLB.WCBZ=''0'' then ''申请'' when YK_YWSQSLB.WCBZ=''1'' then ''正常执行'' when YK_YWSQSLB.WCBZ=''2'' then ''被追回'' when YK_YWSQSLB.WCBZ=''3'' then ''执行完'' end as WCBZ'
+' ,YK_YWSQSLB.CLSJ,YK_YWSQSLB.RYBH,YK_YWSQSLB.MS '
+' from YK_YWSQSLB,YK_ZD_YWDY,YK_ZD_HJDY where YK_YWSQSLB.LB=YK_ZD_YWDY.ID and YK_YWSQSLB.HJBH=YK_ZD_HJDY.ID and YK_ZD_YWDY.DES like '''+'%'+L_YWMC[i]+'%'+''' order by YK_YWSQSLB.SQBH,YK_YWSQSLB.ZXXH ';
sql.Add(SQLString);
open;
end;
YW_HJInitTreeView(i); break;
end;//判断是内容是什么业务
FrmYWLL.RadioButton1.SetFocus;
end//判断这第二级是日常营业下
else if Trim(MainTreeView.Selected.Parent.Text)='环节处理' then begin
FrmYWLL.ADOQuery_YWLL.Close;
for i:=1 to 12 do
if POS(L_HJMC[i],Trim(MainTreeView.Selected.Text))>0 then
begin
with FrmYWLL.ADOQuery_YWLL do
begin
close;
sql.Clear;
SQLString:='Select YK_YWSQSLB.SQBH,YK_YWSQSLB.LB,YK_ZD_YWDY.DES as YWMC,YK_YWSQSLB.YDBH,YK_YWSQSLB.ZXXH,YK_YWSQSLB.HJBH,YK_ZD_HJDY.DES as HJMC,'
+'case when YK_YWSQSLB.ZXZK=''0'' then ''待处理'' when YK_YWSQSLB.ZXZK=''1'' then ''已处理通过'' when YK_YWSQSLB.ZXZK=''2'' then ''未通过退回'' end as ZXZK ,'
+'case when YK_YWSQSLB.WCBZ=''0'' then ''申请'' when YK_YWSQSLB.WCBZ=''1'' then ''正常执行'' when YK_YWSQSLB.WCBZ=''2'' then ''被追回'' when YK_YWSQSLB.WCBZ=''3'' then ''执行完'' end as WCBZ'
+' ,YK_YWSQSLB.CLSJ,YK_YWSQSLB.RYBH,YK_YWSQSLB.MS '
+' from YK_YWSQSLB,YK_ZD_YWDY,YK_ZD_HJDY where YK_YWSQSLB.LB=YK_ZD_YWDY.ID and YK_YWSQSLB.HJBH=YK_ZD_HJDY.ID and YK_ZD_YWDY.DES like '''+'%'+L_YWMC[i]+'%'+''' order by YK_YWSQSLB.SQBH,YK_YWSQSLB.ZXXH ';
sql.Add(SQLString);
open;
end; break;
end;//判断是内容是什么业务
FrmYWLL.RadioButton1.SetFocus;
end;
end;//是第二级
我也在别的机子上做了同样的例子,主窗体初始化时treeview控件只加载一些数据。MDIChild窗体初始化时自动为DBGrid程序加载数据(ADOQuery控件Active为True,与DBGrid、datasource三个控件互联)。简化到两个窗体没有点击事件的关连!
同样出现问题!
还有一点运行以前没有这个问题的程序(已经做好了的),直接运行程序,也出现了这个问题!