Как можно воспользоваться правой кнопкой мыши на панели MI

MapInfo, MapBasic
Ответить
Аватара пользователя
Parlament
Интересующийся
Сообщения: 30
Зарегистрирован: 11 сен 2008, 14:51
Репутация: 0
Контактная информация:

Как можно воспользоваться правой кнопкой мыши на панели MI

Сообщение Parlament » 10 ноя 2008, 16:27

Кто подскажет и выложит текст как можно воспользоваться правой кнопкой миши на панели MapInfo в своем Menu Bar так... чтобы открывалась вкладка ну скажем на добавление нового элемента.. и чтобы эта вкладка вылезала только в Этом баре и только по нажатию правой кнопки мыши...


P.S. Я извращаюсь с MapBasic .. но мне это очень нужно...

Из хелпы :

"DefaultShortcut" Стандарное быстрое меню. Это меню появляется при нажатии правой кнопки мыши на окне, не имеющем своего быстрого меню. (ID 16)
"MapperShortcut" Быстрое меню для окна Карты. (ID 17)

"BrowserShortcut" Быстрое меню для окна Списка. (ID 18)
"LayoutShortcut" Быстрое меню для окна Отчета. (ID 19)
"GrapherShortcut" Быстрое меню для окна Графика. (ID 20)
"CmdShortcut" Быстрое меню для окна MapBasic. (ID 21)
"RedistrictShortcut" Быстрое меню для окна Геогрупп. (ID 22)


Но как этой галиматьей пользоваться я так и не понял....

У меня получилось только на карте.. а вот в меню =((((((
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Аватара пользователя
Parlament
Интересующийся
Сообщения: 30
Зарегистрирован: 11 сен 2008, 14:51
Репутация: 0
Контактная информация:

Re: Вопрос на 1000000$

Сообщение Parlament » 10 ноя 2008, 16:31

Дамы и господа... прошу проявите активность на форуме...!!!! Не обязательно давать чёткие ответы.. достаточно подкинуть идею.. как можно это можно реализовать по другому... или как нашли выход вы! 8)
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Аватара пользователя
Parlament
Интересующийся
Сообщения: 30
Зарегистрирован: 11 сен 2008, 14:51
Репутация: 0
Контактная информация:

Re: Как можно воспользоваться правой кнопкой мыши на панели MI

Сообщение Parlament » 11 дек 2008, 18:21

Судя по молчанию никто так и не смог добиться таких результатов.. походу ихнее GUI насилую только я =))))))

Код: Выделить всё

*************************************
' Создание ветку чтобы была вкладка во вкладке
'*************************************
Sub branche_three (iz As SmallInt) - параметр iz используется для назначения ID поскольку функция вызывается рекурсивно.. и не однократно то для постраение большого числа веток это не обхадимо
Dim gr2_name As String
---- удаляю элементы которые  стояли в конце списка вкладок.. в самом низу я их добовляю... для того чтобы список вкладок у меня был в центре...
If glist(iz).id_Group = 30 Then  --- это условие нужно для того чтобы определить в какую вкладку я добовляю подвкладку... если в главное меню.. то я удаляю.. итема.. если нет иду мимо..
    gr2_name = Name_menu_main
  Alter Menu  ID 30  Remove ID 60
  Alter Menu  ID 30  Remove ID 61
  If iz = 1 Then
  Alter menu Name_menu_main Add
 "(-"
End if
 Else
  gr2_name = glist(glist(iz).id_Group).Name_Group
End If

----- непосредственно само формирование меню...
Create menu  glist(iz).Name_Group  As
 Add_create_wor ID iz Calling New_branche,
 Add_falder_for_wor ID iz Calling Create_Foulder_item,
 "(-",
 Delete_falder_for_wor ID iz Calling Referens_Delete_Folder,
 "(-"
 Alter Menu  gr2_name Add
  glist(iz).Name_Group  As  glist(iz).Name_Group

If glist(iz).id_Group = 30 Then --- это условие нужно для того чтобы определить в какую вкладку я добовляю подвкладку... если в главное меню.. то я добавляю.. в конце эти итема..

If iz = 1 Then
  Alter menu Name_menu_main Add
 "(-"
End if
'добовление ID 60, 61
 Alter menu Name_menu_main Add
 "(-",
 Info_menu_main ID 60 Calling SK_About,
 "(-",
 Exit_menu_main ID 61 Calling SK_Exit
End If
End Sub


идея всей этой лабуды такова...

Код: Выделить всё

Main-Вкладка
Вкладка_1 ------|
                         |-> Вкладка_1_1
Вкладка_2 ------|
                         |->Вкладка_2_1
                         |->Вкладка_2_2 ------|
                                                          |->Вкладка_3_1
                                                          |->Вкладка_3_2
Вкладка_3 ------|
                         |->Вкладка_3_1
                         |->Вкладка_3_2  ------|
                                                           |->Вкладка_4_1
                                                           |->Вкладка_4_2
И так далие и это дерево может рости сколько в лезит и как вам хочется...
Кого заинтересует идея я могу выслать тестовую прогу поглядеть.. как вообще это выглядит.... и рассказать как отслеживать удаление создание сохранение любых итемов в этом мего меню -дерево =))) чтоб вы не ломали себе голову... и не взрывали мозг..
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Аватара пользователя
Parlament
Интересующийся
Сообщения: 30
Зарегистрирован: 11 сен 2008, 14:51
Репутация: 0
Контактная информация:

Re: Как можно воспользоваться правой кнопкой мыши на панели MI

Сообщение Parlament » 11 дек 2008, 18:35

Однажды сидел сидел.. и возник вопрос а куда складывать все конфиги и все все настройки для каконть программы... ведь если приложение запустить например в Windows Vista то она просто заколебет или попросту не даст вам ничего создать лишнего...

Я подошел с точки зрения GUI с той идее что пользователь вообще не должен знать где что какая настройка лежит.. они создаются сами.. если возникает вопрос.. спрашивать у пользователя =)))))))) Так вот к чему я виду... Есть в MapBasic хорошая функция HomeDirectory так вот по моему мнению она работает кривовато.. так как он возвращает путь до файла win.ini что есть не очень правильно....

Хотя все знаю что что домашний каталог находится по этому адресу..
C:\Documents and Settings\ UserName В этом каталоге можно творить все что тебе вздумается.. но поскольку надо как то и это учитывать.. то я написал на C++ dll которая возвращает домашний каталог... и создает папку.. с тем именем с которым вы передадите ей...

Код: Выделить всё


#include <Windows.h>
#include <Shlobj.h>
#include <stdio.h>
#include "defines.h"

EXPORT bool GetCurrentUserHomeDirectory( char *lpszPath )
{
	char path[MAX_PATH];
	if( SHGetSpecialFolderPath( 0, path, CSIDL_PROFILE , 0 ) )
	{
		strcpy(lpszPath, path);
		return true;
	}
	else
	{
		lpszPath = "";
		return false;
	}
}


EXPORT bool CreateFolder( const char *folderPath, const char *folderName )
{
	if( folderPath == 0 && folderName == 0 )
		return false;
	char path[MAX_PATH];
	memset( path, 0, MAX_PATH );
	strcpy( path, folderPath);
	strcat( path, "/" );
	strcat(path, folderName );

	if( CreateDirectory( path, 0 ) )
		return true;
	else
		return false;

}

Dll работает как часики.. кому нужно вышлю почтой проэкт или длл с описанием как че куда передавать =)))))))


Так же есть в наличии такая же длл
Которая формирует HTML страничку...

Ну мне это нужно было для формирования отчета с картинкой... чел наводит... на обьект жмет отчет и тут бац в MS Word или IE ему вываливается полный отчет с картинкой... =)))))



:D
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Аватара пользователя
Parlament
Интересующийся
Сообщения: 30
Зарегистрирован: 11 сен 2008, 14:51
Репутация: 0
Контактная информация:

Re: Как можно воспользоваться правой кнопкой мыши на панели MI

Сообщение Parlament » 11 дек 2008, 18:44

Код: Выделить всё

'******************************
' Процедура создания меню
'*****************************
Sub Create_Menu
Create Menu "бла бла бла" ID 570 As
"Информация о точке" ID 590 Calling Work_map,
"Выход" ID 600 Calling SK_Exit

Alter Menu "MapperShortcut" Add
"(-",
"бла бла бла" As  "бла бла бла"
End Sub ' SK_Create_Menu


Короче это выглядит примерно так... открываем карту или таблицу.. я до сих пор не знаю что такое карта и что такое таблица =)))) шучу =)))) И щелкаем на обьект в обычном режиме... Выделив его щелкаем правой клавишей и вываливается список функций... доступных.. так вот.. код написаный выше позволяет не ломая стандартный функционал а аккуратно добавить свою примочку =)))))
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 16 гостей