procedure TFrmApply.FormClose(Sender: TObject; var Action: TCloseAction);
being
if CheckChange=true then
begin
case messagedlg(swarningtext,mtconfirmation,mbYesNoCancel,0) of
idyes:
begin //要求保存
FrmApply.InputData;
if strall='' then Action:=Cafree;
end;
idno:Action:=Cafree ; //关闭
idcancel: FrmApply.WindowState:=wsnormal;
end;
end
else Action:=Cafree;
end;CheckChange定义为Boolean;true时表示窗口的数据已变化,flase为没有变化swarningtext:='数据已经改变,是否要保存?'
FrmApply.InputData为自定义过程,包含一些保存数据到库的语句
其中窗口FrmApply包含很多的Edit和ComboBox,strall='' 表示必须填写的内容已经填写我在运行过程中,在点击cancel或ok的时候FrmApply窗体会最小化,其他都如愿运行,
我想问一下如何在点击cancel或ok后使FrmApply窗体保持原来的状态???我主要通过Edit.Modified和ComboBox.ItemIndex是否改变来判断数据是否改变过,请问还有其他更好的办法吗?
being
if CheckChange=true then
begin
case messagedlg(swarningtext,mtconfirmation,mbYesNoCancel,0) of
idyes:
begin //要求保存
FrmApply.InputData;
if strall='' then Action:=Cafree;
end;
idno:Action:=Cafree ; //关闭
idcancel: FrmApply.WindowState:=wsnormal;
end;
end
else Action:=Cafree;
end;CheckChange定义为Boolean;true时表示窗口的数据已变化,flase为没有变化swarningtext:='数据已经改变,是否要保存?'
FrmApply.InputData为自定义过程,包含一些保存数据到库的语句
其中窗口FrmApply包含很多的Edit和ComboBox,strall='' 表示必须填写的内容已经填写我在运行过程中,在点击cancel或ok的时候FrmApply窗体会最小化,其他都如愿运行,
我想问一下如何在点击cancel或ok后使FrmApply窗体保持原来的状态???我主要通过Edit.Modified和ComboBox.ItemIndex是否改变来判断数据是否改变过,请问还有其他更好的办法吗?
解决方案 »
- 在frxReport1里面增加了BarCode1,请问怎末给BarCode1赋值?
- 如何得到SQL执行后的Recordcount的条数并把这个数加入到另一个数据库?
- Delphi做成Ocx嵌入网页中发布,客户端安装的问题
- Delphi调用C++动态库问题,虽然老话重谈,但是我参考以前的贴子,没有找到解决办法!急!!!
- 大家可好?我可是偷跑出来的
- 我不知道问题的来源。。。
- 连接数据库是odbc好还是ADO好啊?他们在用途上的区别是?
- 这样的语句是否可以执行
- 请帮我分析一下为什么会出现这样的错误提示:Access vidation at address 004a36B2 in modale'**.exe'read of address FFFFFFFF
- 用Delphi开发Web程序的问题。
- 高分奉上,delphi 中如何实现和系统当前日期相减?在线等。。。。
- DELPHI解释器问题
另一种方式就是拦截WM_CLOSEQUERY消息。
中的TCloseAction有四种选择,分别为canone,cahide,cafree, caminimize分别对应取消,隐藏,释放,最小化
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageBox(handle, '数据已经修改,是否保存退出?', '系统提示', MB_OKCANCEL + MB_ICONINFORMATION) = IDCANCEL then
CanClose := false
else
//保存处理,然后退出(当然你可以不退出,只要像上面一样,设置Canclose := false 就可以了,或者给个提示,让用户选择。
end;在这个例子中,选择Cancel的话,就不会退出了。
procedure TFrmApply.FormClose(Sender: TObject; var Action: TCloseAction); 当你需要查某个参数的说明时可以1:按住ctrl然后将鼠标移动到你需要查的类型,在上面的例子中就是按住ctrl将鼠标移动到
TCloseAction然后你会发现TCloseAction下面出现一横线,然后单击即可2:选定TCloseAction按F1就有详细帮助了不要忘记给分啊 ^_^
begin
if Table1.State in [dsEdit, dsInsert] then
if MessageDlg('table1正处于新增或修改状态,要保存吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
table1.Post;
CanClose := True;
end;
to yuzhantao(找不到女朋友,只好养条狗): 很感谢你这次教会了我如何来解决这类问题, 希望以后多多指教!!