www.map-info.ru :: Просмотр темы - Передача значений глобальной переменной
                               РќР° главную страницу сайта

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

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



Зарегистрирован: 16.07.2008
Сообщения: 19

СообщениеДобавлено: Ср Дек 03, 2008 11:30 am    Заголовок сообщения: Передача значений глобальной переменной Добавить ответ со ссылкой на данный текст

Господа подскажите на такой вопрос:
Необходимо предать из клиента в программу MBX значения (имена таблиц)
и чтобы после этого программа начала производить дальнейшие действия???
Как передавать значения я вкурсе, а вот как это сделать чтобы после передачи программа начала функсионировать - это для меня вопрос!
Скорее всего надо использовать что-то вроде RemoteMsgHandler...
Если можно с примерами :))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vovik



Зарегистрирован: 04.05.2008
Сообщения: 57

СообщениеДобавлено: Ср Дек 03, 2008 11:56 am    Заголовок сообщения: Re: Передача значений глобальной переменной Добавить ответ со ссылкой на данный текст

Я делаю так
Это фрагмент кода MB (утилиты к примеру - Ввод колодцев.MBX)

'переменные уровня утилиты
Dim shet As integer
Dim NKol As String
Dim Dt As String
Dim Mat As String

' автоматом вызывается при передачи данных из VB смотри фрагмент кода ниже.
Sub RemoteMsgHandler()
Dim sMsg As String
sMsg = CommandInfo(CMD_INFO_MSG)
Do case shet
case 0
NKol = sMsg
shet =1
Exit Sub
case 1
Dt = Val(sMsg)
shet =2
Exit Sub
case 2
Mat = sMsg
shet =0
Exit Sub
end case
End Sub

Фрагмент кода VB
Private Sub Command1_Click() 'Ввод
Text2.LinkTopic = "MapInfo|Ввод колодцев.MBX"
Text2.LinkMode = 2
Text2.LinkExecute Text1(0).Text '№ колодца
Text2.LinkExecute Text1(1).Text 'D_трубы
Text2.LinkExecute Text1(2).Text 'Материал
Text2.LinkMode = 0
Unload Me
End
End Sub

Я думаю коментариии излишни
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
khSerg



Зарегистрирован: 16.07.2008
Сообщения: 19

СообщениеДобавлено: Ср Дек 03, 2008 12:33 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Спасибо за пример!
А что такое Text1(0) - вот этот 0, потому что так работать не хочет
и если написать так Text2.LinkExecute Text1.Text - то хоть компилит

И еще, а то делать если я пишу в C# :))? там LinkTopic и других свойств у textbox нет!!! нда
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vovik



Зарегистрирован: 04.05.2008
Сообщения: 57

СообщениеДобавлено: Чт Дек 04, 2008 5:16 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Text1 -это имя , а 0 это индекс контрола TextBox VB.
Я редко даю "свои" имена контролам т.к меня устраивают имена который VB дает по умолчанию
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
khSerg



Зарегистрирован: 16.07.2008
Сообщения: 19

СообщениеДобавлено: Чт Дек 04, 2008 8:38 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

ААА ну не знал что в VB есть у textbox свои индексы :)
но почемуто с ними работать не хочет, но это и не важно...
сейчас думаю как попытатся вашу конструкцию в C#
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
khSerg



Зарегистрирован: 16.07.2008
Сообщения: 19

СообщениеДобавлено: Чт Дек 04, 2008 12:26 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Кому интерсно, получилось вот такое безобразие, но работает:
public object MapInfo;
//DDE

this.MapInfo = RuntimeHelpers.GetObjectValue(Interaction.CreateObject("MapInfo.Application", ""));
Excel._Application app = new Excel.Application();
NewLateBinding.LateCall(this.MapInfo, null, "do", new object[] { "Run Application \"D:\\NOUT\\Programs\\MyProgram\\Untitled.MBX\" " }, null, null, null, true);
int i = Conversions.ToInteger(app.DDEInitiate("MapInfo", "D:\\NOUT\\Programs\\MyProgram\\Untitled.MBX"));
app.DDEExecute(i,"cod");
textBox1.Text = "True";
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

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


Top.Mail.Ru