2 Jismo:
большое спасибо за файлы!
MapBasic и все что с ним связаноМожет я не один такой?!
Автор Jismo, 24.03.2009, 11:10
#28
Отправлено 20.05.2009, 17:43:58
Первое условие которое необходимо для вызова .NET библиотеки из MB: метод должен быть статичным!!!
Это пример когда метод ничего не возвращает:
и внутри любого метода пишешь вызов:
результат: вылазиет окошко стандартное для .Net - MessageBox с текстом что ты написал в мапбэйсике.
А это когда возвращает значение:
и внутри метода пишешь вызов:
результат: вылазиет окошко стандартное для .Net - MessageBox с текстом что ты написал в мапбэйсике и в переменную заносится True.
ЗЫ: Примеры образные, но рабочие. Да и еще кое что при объявлении класса в Мапбэйсике указывается и пространство имен и класс в данных примерах, пространство имен это Sample, а класс это Msg
А про перехват, что то не догнал, вечер видимо сказывается конец рабочего дня. Если не сложно можешь поподробней.
Это пример когда метод ничего не возвращает:
Declare Method ShowMsg Class "Sample.Msg" Lib "Sample.dll" (ByVal str As String)
и внутри любого метода пишешь вызов:
Call ShowMsg("Привет")
результат: вылазиет окошко стандартное для .Net - MessageBox с текстом что ты написал в мапбэйсике.
А это когда возвращает значение:
Declare Method ShowMsg Class "Sample.Msg" Lib "Sample.dll" (ByVal str As String) As Logical
и внутри метода пишешь вызов:
Dim mybool As Logical mybool = ShowMsg("Привет")
результат: вылазиет окошко стандартное для .Net - MessageBox с текстом что ты написал в мапбэйсике и в переменную заносится True.
ЗЫ: Примеры образные, но рабочие. Да и еще кое что при объявлении класса в Мапбэйсике указывается и пространство имен и класс в данных примерах, пространство имен это Sample, а класс это Msg
А про перехват, что то не догнал, вечер видимо сказывается конец рабочего дня. Если не сложно можешь поподробней.
#31
Отправлено 20.05.2009, 17:58:01
проблема еще в том что мне нужны не координаты, а другие параметры, которые видны когда выбираешь информацию о объекте...
а как например показать окошко когда пользователь выбирает какой-то объект ? в какую тут сторону рыть ?
а как например показать окошко когда пользователь выбирает какой-то объект ? в какую тут сторону рыть ?
Сообщение отредактировал Conkistador: 20.05.2009, 18:00:26
#36
Отправлено 20.05.2009, 18:21:51
Declare Method Test
Class "ClassLibrary1.Class1" Lib "ClassLibrary1.dll"
(ByVal obj As Object) As Integer
public static int Test(ref Object aObj)
{
...
return 2;
}
ругается Invalid or missing argument list.
хотя без входных параметров все ок (перекомпиливал и пробовал с ref и без) вообще возможно ли передавать ссылочные типы ?
Еще вопрос как поймать момент когда пользователь что то делает? ну типа обработчик события переопределить...
спасибо, попробую обязательно, хоть немного стало понятно куда рыть...
Class "ClassLibrary1.Class1" Lib "ClassLibrary1.dll"
(ByVal obj As Object) As Integer
public static int Test(ref Object aObj)
{
...
return 2;
}
ругается Invalid or missing argument list.
хотя без входных параметров все ок (перекомпиливал и пробовал с ref и без) вообще возможно ли передавать ссылочные типы ?
Еще вопрос как поймать момент когда пользователь что то делает? ну типа обработчик события переопределить...
Dim MyObj As Object Dim n As integer n = SelectionInfo(SEL_INFO_NROWS) If n = 1 Then MyObj = Selection.Obj End If
спасибо, попробую обязательно, хоть немного стало понятно куда рыть...
Сообщение отредактировал Conkistador: 20.05.2009, 18:20:44
#37
Отправлено 20.05.2009, 18:22:51
если хочешь ссылочные типы то тебе надо писать не ByVal, а ByRef вроде как
и еще:
Для ловли атрибутов есть такая вот вещь: StyleAttr(style, attribute).
В твоем случае style это будет символ,
а атрибут это:
SYMBOL_KIND,
SYMBOL_CODE,
SYMBOL_COLOR,
SYMBOL_POINTSIZE,
SYMBOL_FONT_NAME,
SYMBOL_FONT_STYLE,
SYMBOL_ANGLE,
SYMBOL_CUSTOM_NAME,
SYMBOL_CUSTOM_STYLE
и еще:
Для ловли атрибутов есть такая вот вещь: StyleAttr(style, attribute).
В твоем случае style это будет символ,
а атрибут это:
SYMBOL_KIND,
SYMBOL_CODE,
SYMBOL_COLOR,
SYMBOL_POINTSIZE,
SYMBOL_FONT_NAME,
SYMBOL_FONT_STYLE,
SYMBOL_ANGLE,
SYMBOL_CUSTOM_NAME,
SYMBOL_CUSTOM_STYLE
#40
Отправлено 20.05.2009, 18:36:42
Не помню точно, но вроде как есть 10 системных хэндлеров котроые можно переобпределять, просто напиав их заново MB будет уже использвовать переопределнные хэндлеры а не свои собственные, я работал только с WinFocusChanged_Handler'ом WinClosed хэндлером, так что извини с мышей как там дела обстоят не знаю
Сообщение отредактировал Jismo: 20.05.2009, 18:49:07
Количество пользователей, читающих эту тему: 2
пользователей: 0, неизвестных прохожих: 2, скрытых пользователей: 0