按下增加按钮,然后不做保存退出窗口,又打开窗口进入按下增加按钮程序出现问题,错误提示如下:“cannot focus a disable or invisible window”,同样的如下代码用BDE却没问题,请问为什么呢??
procedure TForm_itemset.FormCreate(Sender: TObject);
begin
dm1.ADOQuery_manu.close;
dm1.ADOQuery_manu.Open;
BitBtn_insert.Enabled:=true;
BitBtn_save.Enabled:=false;
end;procedure TForm_itemset.FormClose(Sender: TObject; var Action: TCloseAction);
begin
dm1.ADOQuery_manu.close;
end;procedure TForm_itemset.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var r:smallint;
begin
if BitBtn_save.Enabled=true then
begin
r:=Application.MessageBox('请先保存,再退出!','提示',MB_yesnocancel);
case r of
IDYES:
begin
BitBtn_saveClick(self);
Form_itemset.Close;
end;
IDNO:
begin
Form_itemset.Close;
end;
IDCancel:
begin
end;
end;
end;
end;procedure TForm_itemset.BitBtn_insertClick(Sender: TObject);
begin
dm1.ADOQuery_manu.Append;
BitBtn_insert.Enabled:=False;
BitBtn_save.Enabled:=True;
dbedit1.SetFocus;
end;procedure TForm_itemset.BitBtn_saveClick(Sender: TObject);
begin
if (dm1.ADOQuery_manu.State in dsEditModes) then
begin
dm1.ADOConnection1.BeginTrans;
try
dm1.ADOQuery_manu.post;
dm1.ADOConnection1.CommitTrans;
except
dm1.ADOConnection1.RollbackTrans;
showmessage('保存数据出错,请稍候再试!');
end;
end; FormCreate(self);
end;
procedure TForm_itemset.FormCreate(Sender: TObject);
begin
dm1.ADOQuery_manu.close;
dm1.ADOQuery_manu.Open;
BitBtn_insert.Enabled:=true;
BitBtn_save.Enabled:=false;
end;procedure TForm_itemset.FormClose(Sender: TObject; var Action: TCloseAction);
begin
dm1.ADOQuery_manu.close;
end;procedure TForm_itemset.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var r:smallint;
begin
if BitBtn_save.Enabled=true then
begin
r:=Application.MessageBox('请先保存,再退出!','提示',MB_yesnocancel);
case r of
IDYES:
begin
BitBtn_saveClick(self);
Form_itemset.Close;
end;
IDNO:
begin
Form_itemset.Close;
end;
IDCancel:
begin
end;
end;
end;
end;procedure TForm_itemset.BitBtn_insertClick(Sender: TObject);
begin
dm1.ADOQuery_manu.Append;
BitBtn_insert.Enabled:=False;
BitBtn_save.Enabled:=True;
dbedit1.SetFocus;
end;procedure TForm_itemset.BitBtn_saveClick(Sender: TObject);
begin
if (dm1.ADOQuery_manu.State in dsEditModes) then
begin
dm1.ADOConnection1.BeginTrans;
try
dm1.ADOQuery_manu.post;
dm1.ADOConnection1.CommitTrans;
except
dm1.ADOConnection1.RollbackTrans;
showmessage('保存数据出错,请稍候再试!');
end;
end; FormCreate(self);
end;
解决方案 »
- 如何做音效处理处理
- 请教几个关于多层结构的问题:
- 那里有DELPHI视频教学的软件?
- 模糊查找一个窗口!
- 请教有关把MonthCalendar中的日期通过选择自动同步到EDIT.TEXT或者COMBOBOX中
- 初学者的苦恼!
- adoconnection的一个菜鸟问题 :)
- 请教各位老大,关于stringgrid的用法,小弟初用,请各位指点,小弟200分送上,
- Application.CreateForm(TForm1, Form1) 和 Form1 := TForm1.Create(Application) 的区别?
- 在C/S结构中如何使用两种以上的线程模型?具体如何调用?
- 一个关于edit控件的问题,在线等!
- 使用Indy 9 的IdTCPServer怎样才能穿过防火墙?
dbedit1.SetFocus;
你是动态创建的窗口吗
我不是动态创建的窗口