Перейти к содержимому

Фотография

MapBasic и все что с ним связаноМожет я не один такой?!


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 388

#21
d_d_t

d_d_t
  • Завсегдатай
  • 239 сообщений
2 Jismo:
большое спасибо за файлы!
  • 0

#22
Annettemaa

Annettemaa
  • Случайный прохожий
  • 2 сообщений
Киньте и мне пожалуйта ссылочки по MapBasic, заранее спасибо)
  • 0

#23
Jismo

Jismo
  • Свой человек
  • 975 сообщений

Киньте и мне пожалуйта ссылочки по MapBasic, заранее спасибо)

Привет, у тебя не работает личный ящик так что напиши свой емэйл, потом туда кину ссылки. И что именно нужно?(литература, компилятор) И какая версия нужна?
  • 0

#24
Annettemaa

Annettemaa
  • Случайный прохожий
  • 2 сообщений
Мой адрес: annettemaa@mail.ru
Мне нужен Basic 9.0 и литература если есть какая-нибуль для него.
  • 0

#25
Jismo

Jismo
  • Свой человек
  • 975 сообщений
все отправил пользуйся на здоровье :dandy:
  • 0

#26
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Если кому понадобиться хэлп с подключением .NET библиотеки, обращайтесь, помогу.
  • 0

#27
Conkistador

Conkistador
  • Гость
  • 33 сообщений

Если кому понадобиться хэлп с подключением .NET библиотеки, обращайтесь, помогу.

Я бы не отказался от помощи с подключением .Net библиотеки...
Еще очень интересно как перехватить событие из MapBasic'а, например выбор точки на карте...
  • 0

#28
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Первое условие которое необходимо для вызова .NET библиотеки из MB: метод должен быть статичным!!!

Это пример когда метод ничего не возвращает:
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

А про перехват, что то не догнал, вечер видимо сказывается конец рабочего дня. Если не сложно можешь поподробней.
  • 0

#29
Conkistador

Conkistador
  • Гость
  • 33 сообщений
За подключение к .Net библиотеке спасибо. (про необходимость Call ShowMsg("Привет") совсем забыл)

теперь подробнее о второй проблеме: нужно что бы когда пользователь выбирает точку на карте, в мою функцию были переданы параметры этой точки...
  • 0

#30
Jismo

Jismo
  • Свой человек
  • 975 сообщений
думаю надо рыть в сторону ObjectNodeX и ObjectNodeY

пордон я погоречился ;), это к узлам относится
  • 0

#31
Conkistador

Conkistador
  • Гость
  • 33 сообщений
проблема еще в том что мне нужны не координаты, а другие параметры, которые видны когда выбираешь информацию о объекте...

а как например показать окошко когда пользователь выбирает какой-то объект ? в какую тут сторону рыть ?

Сообщение отредактировал Conkistador: 20.05.2009, 18:00:26

  • 0

#32
Jismo

Jismo
  • Свой человек
  • 975 сообщений
ну можно использовать print, или при выделении объекта создавать табличку со всеми данными этого объекта

а потом browseить эту табличку
  • 0

#33
Conkistador

Conkistador
  • Гость
  • 33 сообщений
Вот как поймать этот момент выделения ?
  • 0

#34
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Dim MyObj As Object

Dim n As integer

n = SelectionInfo(SEL_INFO_NROWS)

If n = 1 Then

   MyObj = Selection.Obj

End If


  • 0

#35
Jismo

Jismo
  • Свой человек
  • 975 сообщений
А что касается точки то кроме координат есть только стиль этой точки и все других параметров я не знаю.
  • 0

#36
Conkistador

Conkistador
  • Гость
  • 33 сообщений
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 и без) вообще возможно ли передавать ссылочные типы ?

Еще вопрос как поймать момент когда пользователь что то делает? ну типа обработчик события переопределить...

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

  • 0

#37
Jismo

Jismo
  • Свой человек
  • 975 сообщений
если хочешь ссылочные типы то тебе надо писать не 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
  • 0

#38
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Не зачто удачи в работе с MB ;)

PS: Хотя я тоже начинающий сегодня ровно 2 месяца и 2 дня как я работаю на MB.
  • 0

#39
Conkistador

Conkistador
  • Гость
  • 33 сообщений
А все таки как поймать момент когда пользователь что то делает? ну типа обработчик события переопределить...
  • 0

#40
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Не помню точно, но вроде как есть 10 системных хэндлеров котроые можно переобпределять, просто напиав их заново MB будет уже использвовать переопределнные хэндлеры а не свои собственные, я работал только с WinFocusChanged_Handler'ом WinClosed хэндлером, так что извини с мышей как там дела обстоят не знаю ;)

Сообщение отредактировал Jismo: 20.05.2009, 18:49:07

  • 0


Количество пользователей, читающих эту тему: 2

пользователей: 0, неизвестных прохожих: 2, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.