|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Параллельные процессы в Delphi 2010
Ребят, есть код:
Код:
procedure TFormMain.BitBtn2Click(Sender: TObject); begin FormAnimate.ShowModal; ADOStoredProcImport.ExecProc; FormAnimate.Close; ShowMessage('Информация передана'); end; В этой процедуре идет вызов отдельной формы с анимацией, на ней располагается компонент TAnimate, к компоненту прикреплен файл avi. После вызова формы идет использование хранимой процедуры ADOStoredProcImport.ExecProc, которая осуществляет передачу данных из файла в базу данных. Далее закрытие формы с анимацией и вывод сообщения, что данные переданы. Проблема в том, что процессы идут последовательно, и пока форма с анимацией работает, вызов хранимой процедуры не осуществляется. Как сделать в Delphi 2010, чтобы эти два процесса шли одновременно, то есть во время работы хранимой процедуры (передача данных) на экране шла анимация с другой формы? Последний раз редактировалось Admin, 10.09.2015 в 19:11. |
#2
|
||||
|
||||
потоки и еще раз потоки...
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
Например можно попробовать выполнить хранимку асинхронно, а уже на событие ее завершения повесить вызов:
Код:
FormAnimate.Close; ShowMessage('Информация передана') Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
Ну, как уже написали, лучше использовать потоки.
Простой способ поправить то, что у тебя уже есть: 1. Ставим у FormAnimate FormStyle в fsTopmost (или как оно там называется, ну что бы форма отрисовывалась поверх всех окон). 2. Заместо ShowModal используем просто Show. 3. После Show ставим Application.ProcessMessages (надо дать форме прорисоваться). Далее так, как у тебя. Суррогат, конечно, но ничего не надо переделывать по серьезному. |