各位老师,请帮忙看一下,为什么下面这个按钮程序调试时没反应???(50分)

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

cocci

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.SaveClick(Sender: TObject);
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
SaveDialog1.FileName := 'file1';
if (ActiveControl is TDBGridEh) then
if SaveDialog1.Execute then
begin
case SaveDialog1.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <>
UpperCase(Ext) then
SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl),
SaveDialog1.FileName,False);
ShowMessage('文件保存成功');
end;
end;
end;

在调试时按SaveClick按钮没有反应???
 
你检查这个过程和按钮单击事件关联了吗?
 
if (ActiveControl is TDBGridEh) ???
如果你用的是可以获得焦点的Button控件,那你点击按钮的时候焦点在该Button上,当然就不能执行下面的程序而直接结束了!
 
如果按二楼的老师所说,请问我应该怎样做呢
 
你看看你的命令按钮的属性中,鼠标单击事件,看看是不是和你写的过程关联了。
 
是呀,可能是第二位老师说的问题,请问应该怎样解决呢,我是新手,啥都不太懂呢
 
把if (ActiveControl is TDBGridEh) then去掉行不行呢
 
最简单的处理就是你看看该命令按钮对应的事件。
 
把if (ActiveControl is TDBGridEh) then去掉不行,去掉后功能无法实现
该命令按钮对应的事件就是TForm1.SaveClick呀
 
procedure TForm1.SaveClick(Sender: TObject);
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
SaveDialog1.FileName := 'file1';
if SaveDialog1.Execute then
begin
case SaveDialog1.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <>
UpperCase(Ext) then
SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl),
SaveDialog1.FileName,False);
ShowMessage('文件保存成功');
end;
end;
end;
 
这样不行呀,TDBGridEh中的数据没有保存到文件里
 
是这一句的原因吧,
SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl),
SaveDialog1.FileName,False);
 
不是,应该是焦点的问题,但是我不知道应该怎样解决
 
如果你想设置焦点到DBGridEh1,
DBGridEh1.setfouce;
加在下面一句话之前。
SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl),
SaveDialog1.FileName,False);
 
还是不行
“if (ActiveControl is TDBGridEh) ???
如果你用的是可以获得焦点的Button控件,那你点击按钮的时候焦点在该Button上,当然就不能执行下面的程序而直接结束了!”,这句话是什么意思呀???
 
DBGridEh1.setfouce;//强制设置焦点。
if (ActiveControl is TDBGridEh) ???
 
不行,还是不行,就是不行呀
 
多人接受答案了。
 
后退
顶部