0

我的来自 TADGUIxAsyncExecuteDialog 组件的 AnyDac Cancel 对话框出现问题,基本上我需要用户能够取消查询执行它工作得很好但设计与程序不匹配我需要的是编辑显示的表单为了满足用户的需求,删除 AnyDac 的图标更改标题等。有什么想法可以做到这一点吗?

我正在使用 AnyDac 6.0.3 Build 2713 Delphi XE

尝试在互联网上搜索一个星期,没有运气:)

4

1 回答 1

2

找到了解决方法:)

    while AnyQuery.Command.State = csExecuting do
    begin
      Application.ProcessMessages;
      //do anything here while query is executing
      //the query has to be set to ResourceOptions.CmdExecMode = amAsync
      end;
    end;

您也可以通过执行以下命令取消查询

AnyQuery.AbortJob(False);

我的代码如下所示:

AnyQuery.Active;
ShowProgressForm:= TShowProgressForm.Create(Application); 
ShowProgressForm.Label1.Caption := 'Generating Query Please Wait...';

while AnyQuery.Command.State = csExecuting do
begin
      Application.ProcessMessages;

      if ShowProgressForm.Cancel then
      begin
        AnyQuery.AbortJob(False);
        ShowProgressForm.Close;
        EXIT;
      end;
end;

ShowProgressForm.Close;

Cancel是一个全局布尔变量,ShowProgressForm.pas当您按下Cancel按钮时,变量变为True并且该AbortJob(False)方法将中止查询执行:)

希望能帮助到你 :)

于 2013-02-28T07:32:19.810 回答