我尝试在导出数据之前禁用ABSQuery1控件:
procedure TForm1.QExport4Dialog1BeforeExportRow(Sender: TQExport4;
Row: TQExportRow; var Accept: Boolean);
begin
ABSQuery1.DisableControls;
end;
但我明白了:
> [dcc32 Error] Unit1.pas(75): E2003 Undeclared identifier: 'TQExport4'
> [dcc32 Error] Unit1.pas(76): E2003 Undeclared identifier:
> 'TQExportRow' [dcc32 Error] Unit1.pas(204): E2005 'TQExport4' is not a
> type identifier [dcc32 Error] Unit1.pas(205): E2005 'TQExportRow' is
> not a type identifier [dcc32 Fatal Error] Project1.dpr(15): F2063
> Could not compile used unit 'Unit1.pas'
我做错了什么?
答案 0 :(得分:0)
您的错误消息都表明您没有使用声明命名符号的单位。将那些声明TQExport4和TQExportRow的单元添加到Unit1的uses子句中。
当您遇到您不理解的编译器错误时,通常值得查阅文档。搜索错误代码,例如E2003。 documentation说:
编译器无法找到给定的标识符 - 很可能是在声明点或使用点拼写错误。它可能来自另一个未提及使用条款的单位。
最后一句话涵盖了你的场景,尽管作者在写这篇文章时陷入了纠结,而且这些词语没有多大意义。叹息。
顺便说一句,该文档页面底部的示例让我感到难过。作者在纠正错误命名的变量时表示偏好需要最少键击的选项。不要介意让名称正确,只需使用最少的键击进行编译,并关心下一个阅读代码的人。 PAH!