Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2009, 09:25   #1
Чук и Гек
 
Аватар для Чук и Гек
 
Регистрация: 25.02.2009
Сообщений: 4
Лампочка Ошибки автоматизации в Delphi

Всем привет! Если кто-нибудь сталкивался с сообщениями типа " Не удается выполнить исходящий вызов, так как приложение обрабатывает входящий синхронный вызов", подскажите какова может быть её причина и как с ней справиться...очень очень нужно! (я разрабатываю MDI-приложение, которое использует технологию OLE-automation и callback-вызовы) Буду очень ждать!
Чук и Гек вне форума Ответить с цитированием
Старый 29.04.2009, 09:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну причина может быть в том что ОЛЕ-прога, которую ты напряг, чего-то выполнять еще не закончила это выполнение, а ты уже ее другим напрягаешь заданием.
В таких случаях, насколько мне извесно, ждут пока callbackи не перестанут вызываться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.04.2009, 08:13   #3
Чук и Гек
 
Аватар для Чук и Гек
 
Регистрация: 25.02.2009
Сообщений: 4
По умолчанию

Спасибо. Действительно, так и есть. У меня на событие FormActivate дочерней формы повешан обработчик:
Код:
procedure TfrChild.FormActivate(Sender: TObject);
var wnd_ID: integer;
begin
if MapRun=true then //Если окно карты MapInfo загружено
 begin  
   wnd_ID:=frmmapinfo.getFW(frmmapinfo.ActiveMDIChild.Handle, MapCount);//определяем идентификатор этого преподчинённого окна Карты  в мапинфо
   frmmapinfo.KDMapInfoServer1.Exec('Set Window '+ Inttostr(wnd_ID) + ' Front',[]);//делаем это окно в MapInfo верхним
  end;  
end;
Если между Child-формами переключаться по заголовкам окон этих дочерних форм, то всё нормально и никаких подобных сообщений не возникает. А если переключиться просто кликнув в любом месте другого окна с картой, то происходит конфликт: здесь и FormActivate вызывается и колбэки (например, сообщение статусной строки в MapInfo передаётся в нашу программу) и ещё может получиться, что одновременно на карте инструментом SELECT выбирается объект. Я так понимаю, надо в начале события FormActivate выполнить проверку, типа если процесс выполняется то ждём...только как, не очень понимаю, поскольку в системном программировнии не шарю.

Последний раз редактировалось Stilet; 30.04.2009 в 09:14.
Чук и Гек вне форума Ответить с цитированием
Старый 30.04.2009, 09:17   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
надо в начале события FormActivate выполнить проверку, типа если процесс выполняется то ждём
В принципе да... тут бы я его в отдельный поток запихнул...
Ну или какой флажок проверял типа BOOLEAN.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.04.2009, 09:56   #5
Чук и Гек
 
Аватар для Чук и Гек
 
Регистрация: 25.02.2009
Сообщений: 4
По умолчанию

Большое спасибо, попробую что-нибудь сделать
Чук и Гек вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] Помогите выявить ошибки в задаче! Пожалуйста! Очень срочно! OtimJ Помощь студентам 3 23.12.2008 13:23
Ошибки при линейной интерполяции в Delphi(( Auster Помощь студентам 14 23.04.2008 21:27
Задачка в delphi, вылазят ошибки... Absent Помощь студентам 3 17.02.2008 15:54