2013-02-25 1 views
0

У меня возникла проблема с моим диалоговым окном AnyDac Cancel из компонента TADGUIxAsyncExecuteDialog, в основном мне нужно, чтобы пользователь мог отменить выполнение запроса, он отлично работает, но дизайн не соответствует программа, в которой я нуждаюсь, - это отредактировать форму, которая отображается для пользователя в моих потребностях, удалить значок AnyDac, изменить подпись и т. д. любые идеи, как я могу это сделать?Конструкция формы AnyDac, диалоговое окно отмены запроса программирования

Я использую AnyDac 6.0.3 сборки 2713 Delphi XE

пытался искать по всему интернету за неделю сейчас, не повезло :)

ответ

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) прервет выполнение запроса :)

Надежда это помогает :)

+0

Спасибо, что поделились своим решением. –

+0

Нет проблем, я надеюсь, что это поможет другим :) – AirWolf