若A子窗体没任何改变(只浏览)就切换到B子窗体,则自动关闭A子窗体,否则先保存。如何实现?急急(20分)

  • 主题发起人 主题发起人 carrie4002
  • 开始时间 开始时间
C

carrie4002

Unregistered / Unconfirmed
GUEST, unregistred user!
若A子窗体没任何改变(只浏览)就切换到B子窗体,则
自动关闭A子窗体,否则先保存。
即,在主窗体下,只有一个被打开的子窗体。
诚请!
 
子窗体都有若干控件,该如何才能判断该窗体数据是否
改变,并关闭该窗体呢?
诚请!
 
设一公用变量: bz: boolean=true;
在所有控件onChange事件中bz:=false;
窗体关闭时判断bz
 
To yuzk2005:
谢谢你。
如果操作的人,根本不关闭该子窗体就通过点击另一个按纽来启动
另一个窗体,这个变量如何能起到作用呢?
 
富翁们,帮帮忙 !!
 
那就用一个全局的LIST保存每个窗体的状态,关闭时读取这个窗体对应的值就行了,有改变就改全局LIST的对应数值
 
谢谢楼上的。
如果操作者根本不关闭该子窗体,就通过点击另一个按纽来启动
另一个窗体,这个变量如何能起到作用呢?
不是很明白你的意思我该如何去实现?
 
设一公用变量: bz: boolean=true;
在所有控件onChange事件中bz:=false;
判斷(FrmMain.MDIChildCount > 1) and (boolean=true) 則close當前窗口
 
我的窗体属性不是MDIChild。
只是一个窗体调用另外的窗体。
 
procedure TMain.Guan;
var
m:integer;
begin
for m:=Screen.FormCount-1 downto 0 do
if Screen.Forms[m].Name <> 'Main' then
Screen.Forms[m].Free;
end;
这个是关掉除主窗体以外的所有窗体,应该能满足你的要求
 
谢谢。
调试提示是:UnSatisfied forward or external declaration:'TForm1.guan'
我在type 中定义为:procedure Guan;
为什么?
 
使用actionlist.onupdate
 
每个窗体里要做的:
设一公用变量: bz: boolean=true;
在所有控件onChange事件中bz:=false;
窗体关闭时判断bz

在点击每个按钮之前调用
procedure TMain.Guan;
var
m:integer;
begin
for m:=Screen.FormCount-1 downto 0 do
if Screen.Forms[m].Name <> 'Main' then
Screen.Forms[m].Free;
end;
就可以了
 
谢谢。我明白了。
 
后退
顶部