www.map-info.ru :: Просмотр темы - неактивное MI
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
X-Ray



Зарегистрирован: 04.12.2009
Сообщения: 38
Откуда: Казань

СообщениеДобавлено: Ср Фев 03, 2010 1:32 am    Заголовок сообщения: неактивное MI Добавить ответ со ссылкой на данный текст

простенькая mbx вызывает dll на delphi, появляется окно, заказчик хочет, чтобы оно было немодальным, вроде сделала, но при работе проги инструменты и пункты меню в самой мапинфе недоступны, единственное, что можно сделать - двигать панельки инструментов
Подскажите пожалуйста в чем может быть причина? В какую сторону копать?
***************************
MBX
***************************
Include "MENU.DEF"
Include "MAPBASIC.DEF"

Declare Sub CloseAll Lib "MyDLL.dll"
Declare Sub ShowTheForm1 Lib "MyDLL.dll"
Declare Function CreateTheForm Lib "MyDLL.dll" (ByVal DispId As integer, ByVal Handle As Integer) As Logical

Declare Sub Main()
Declare sub DLL

Global Handle As Integer
Global DispId as integer

Sub Main

Call DLL

End Sub

Sub DLL


DispId = systeminfo(17) '17 == SYS_INFO_APPIDISPATCH
Handle = SystemInfo(SYS_INFO_MAPINFOWND)
If CreateTheForm(DispId,Handle)=True Then
Call ShowTheForm1
End If
Exit Sub

***************************

***************************
dll, процедура CreateTheForm(DispId,Handle)
***************************
function CreateTheForm(const DispId: IDispatch; hWnd: THandle): Boolean; stdcall;
var
Str: String;
Begin
Result:=True;
try
oleMapInfo := DispId;
Except
ShowMessage('MapInfo íå îáíàðóæåí. Âîçìîæíî ïðèëîæåíèå íå óñòàíîâëåíî');
Exit;
End;
My_Path:=ShowDllPath();
If FileExists(My_Path+'\Config.ini') then IniFile := TIniFile.Create( My_Path+'\Config.ini')
Else
Begin
Str:='Note "Îøèáêà äîñòóïà ê ôàéëó '+My_Path+'\Config.ini" ';
Olemapinfo.Do(Str);
CreateTheForm:=False;
Exit;
End;
oleMapInfo.Do ('Run Application '+'"'+IniFile.ReadString('Variable','Wor','')+'"');
If OleMapinfo.Eval('NumTables()')=0 Then
Begin
MessageDlg ('Íè îäíà òàáëèöà íå îòêðûòà', mtError, [mbOk], 0);
CreateTheForm:=False;
Exit;
End
Else
Begin
Try
oleMapInfo.Do ('Set ProgressBars Off');
if Assigned(Form1)=False Then
Begin
Report.Flag:=False;
Form1:= TForm1.Create(Application);
Form1.Caption := 'Íàâèãàòîð';
Form1.Hide;

End;
Except
MessageDlg ('Ôîðìó ñîçäàòü íå óäàëîñü', mtError, [mbOk], 0);
CreateTheForm:=False;
Exit;
End;
End;
End;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru