Показать сообщение отдельно
  #1  
Старый 07.10.2015, 11:28
Maxjuvefan Maxjuvefan вне форума
Прохожий
 
Регистрация: 24.08.2015
Сообщения: 30
Версия Delphi: delphi 2010
Репутация: 10
По умолчанию Как в данном примере сделать 2 процесса параллельными?

Есть база данных на sql server 2008 с номерами телефонов и программа на delphi 2010, осуществляющая поиск по этой базе данных нужного номера. Сам поиск реализован в хранимой процедуре Proc_Poisk_po_nomeru на sql server :
Код:
 
procedure TFormMain.PoiskNomeraClick(Sender: TObject);
var  i: integer;
begin //если в поле поиска номера телефона ничего не введено, то выдаем сообщение об ошибке
   if Length(VvodNomeraDlyaPoiska.Text) < 1 then MessageBox(0,'Номер телефона не задан!','Предупреждение',MB_OK);
   begin 
//делаем поиск по базе данных                             
      ADOStoredProc_Poisk_po_nomeru.Parameters.ParamValues['@nom'] := VvodNomeraDlyaPoiska.Text;
      ADOStoredProc_Poisk_po_nomeru.ExecProc;
//Отображение результата поиска в Grid
      ADOQueryPoisk.Sql.Clear;
      ADOQueryPoisk.Sql.Add('Select Номер,"Дата и время",Длительность, Комментарий from ##Rezultat_poiska_po_nomeru');
      ADOQueryPoisk.Open;
      ShowMessage('Найдено записей по указанному номеру телефона - ' + IntToStr(ADOQueryPoisk.RecordCount));
      end;
   end;
end;
Так как телефонов в БД много и поиск реализован на неполное соответствие, то весь процесс занимает много времени. Поэтому хотелось, чтобы пользователь видел, что поиск идет. Для этого реализована другая форма с анимацией (форма с компонентой Animate1):
Код:
procedure TFormAnimate.FormCreate(Sender: TObject);
begin
   Animate1.Active := true;
end;
Как сделать так, чтобы при вызове хранимой процедуры поиск одновременно запускалась форма с анимацией до окончания процесса поиска? Если просто делать вызов этой формы, то все идет последовательно, то есть пока не закрыть форму с анимацией, хранимая процедура вызываться не будет. Как эти процессы сделать параллельными?
Ответить с цитированием