lbview(fsxhtlb.DBGridEh1,fsxhtlb.ADOQuery2); //调用dbgrideh1字段自动添加过程
过程内容如下:
procedure lbview(dbeh:Tdbgrideh;ado:Tadoquery);
var i:integer; col : TColumnEh;
begin
for i:=0 to dbeh.Columns.Count -1 do
begin
dbeh.Columns.Clear;
end;
while not ado.Eof do
begin
col:=dbeh.Columns.Add;
col.Title.Caption:=ado.FieldValues['kjcaption'];
col.FieldName:=ado.FieldValues['fieldname'];
col.Width:=ado.FieldValues['width'];
col.ReadOnly:=true;
ado.Next;
end;
end;现在问题是我用savedialog打算导出dbgrideh内容时,提示Cannot focus a disabled or invisible window错误。下面是输出事件:
procedure Tfsxhtlb.RzToolButton2Click(Sender: TObject);
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
self.ActiveControl:=dbgrideh1;
SaveDialog1.FileName := 'FILE'; 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,true);
end;
end;
end;
过程内容如下:
procedure lbview(dbeh:Tdbgrideh;ado:Tadoquery);
var i:integer; col : TColumnEh;
begin
for i:=0 to dbeh.Columns.Count -1 do
begin
dbeh.Columns.Clear;
end;
while not ado.Eof do
begin
col:=dbeh.Columns.Add;
col.Title.Caption:=ado.FieldValues['kjcaption'];
col.FieldName:=ado.FieldValues['fieldname'];
col.Width:=ado.FieldValues['width'];
col.ReadOnly:=true;
ado.Next;
end;
end;现在问题是我用savedialog打算导出dbgrideh内容时,提示Cannot focus a disabled or invisible window错误。下面是输出事件:
procedure Tfsxhtlb.RzToolButton2Click(Sender: TObject);
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
self.ActiveControl:=dbgrideh1;
SaveDialog1.FileName := 'FILE'; 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,true);
end;
end;
end;
解决方案 »
- cxgrid操作单元格以及合并单元格???【满分求助】
- HTTPRIO1 AS 对象如何释放?
- boolean缺省值居然是true,一直以为是false呢~!
- 很奇怪的一个问题,用ADO操作ACCESS数据库怎么会只显示到1100条记录?
- dll小问题求助,大家帮下忙,谢谢
- ㊣㊣㊣㊣㊣㊣这样的查询如何实现数据库问题,兄弟们帮我一吧㊣㊣㊣㊣㊣。
- DELPHI安装问题
- 新手提问:如何在程序里面让TRichEdit的某一行为选中状态?
- 一个特别恐布的网站, 有心脏病的人千万不要看,我一个网友昨晚差点把我吓死 。
- exe文件如何带参数呢?
- 为什么老是提示‘SA’用户登录失败
- 用delphi做一个路由器自动拨号的功能,怎么做?
控件在不可见或者Endable=False时,不能设置它获取焦点,,,自己好好检查一下比如像这样:
Edit1不可见或者Endable=False时,用Edit1.SetFocus就是错了又比如有一个PageControl1,第1页有dbgrideh1,当前显示的不是第1页
若用self.ActiveControl:=dbgrideh1;也是错误的
应该在之前加上PageControl1.ActivePageIndex:=0;