![]() |
#21 |
1C
|
я понял... задача нерешаема...
|
|
![]() |
#22 |
Участник
|
Дума, что просто либо никто не решал, либо кто решал пока не заглядывал на форум.
Вообще, если есть COM объект, то в трешке можно спокойно дергать его. Иногда бывает трудно подобрать тип параметров. А еще, мне кажется, что обеспечить CallBack не получится. Если бы не проблема с CallBack, то в нижеприведенном примере можно было бы использовать MSWinsock.Winsock (правда видимо это что-то не входящее в Windows XP). Можно было бы даже без использования WScript. Но в примере есть обратный вызов (точнее реакция на событие). Еще думаю, можно воспользоваться WINApi (если не ошибаюсь, то все в библиотеках ws2_32.dll и wsock32.dll), но я не системщик, помочь не смогу в API. |
|
![]() |
#23 |
Боец
|
1. Находим у себя или качаем файл MSWINSCK.OCX (это родной, от Microsoft)
2. Регим его: regsvr32.exe MSWINSCK.OCX 3. "Лицензируем" с помощью файла MSWINSCK.reg 4. Создаем в АОТ, например, 2 формы: SCKSender, SCKReceiver, добавляем в обе зарегиный ActiveX, програмим как нам нужно. В аттачменте найдете все необходимое. Я застрял на этапе соединения: оба "видят" друг-друга, но Receiver придуривается, и не принимает входящее соединение от Sender'a. Уж нету сил разбираться. ![]() |
|
![]() |
#24 |
1C
|
Цитата:
Сообщение от DSPIC
![]() 1. Находим у себя или качаем файл MSWINSCK.OCX (это родной, от Microsoft)
2. Регим его: regsvr32.exe MSWINSCK.OCX 3. "Лицензируем" с помощью файла MSWINSCK.reg 4. Создаем в АОТ, например, 2 формы: SCKSender, SCKReceiver, добавляем в обе зарегиный ActiveX, програмим как нам нужно. В аттачменте найдете все необходимое. Я застрял на этапе соединения: оба "видят" друг-друга, но Receiver придуривается, и не принимает входящее соединение от Sender'a. Уж нету сил разбираться. ![]() а вот импортировать не получилось... говорит, что неверный формат файла экспорт... |
|
![]() |
#25 |
Боец
|
мда, забыл что у Вас 3-ка. Проект делался в 4-ке. Попробуйте этот
|
|
![]() |
#26 |
1C
|
ругается, что нет верной лицензионной информации под эктив-икс... :-(
|
|
![]() |
#27 |
1C
|
Причем тот же самый объект в ВБС создается и отрабатывает...
|
|
![]() |
#28 |
1C
|
УРА! заработало! переввел Эктив в форме, т.е. удалил и выбрал наново и заработало!
:-)) |
|
![]() |
#29 |
1C
|
А вот еще вопрос...
Форма тозаработала, но никак не могу понять как сделать следующее: На форме журнала накладных размещаю кнопку - форма вызывается... а как сделать чтобы сразу строку сообщения в этой форме сформировать, законнектиться и сообщение отправить? причем строка должна содержать ИД таблицы и ИД записи журнала... |
|
![]() |
#30 |
Боец
|
Если я правильно Вас понял, то вкратце так:
1. Сделать форму невидимой (свойство visible на дизайне) 2. По нажатию на кнопку вж урнале, вызывается невидимая форма, ловите там нужные параметры из element.args(). 3. В методе run() после super() делаете что нужно, и вызываете element.close(); Последний раз редактировалось DSPIC; 24.01.2009 в 22:02. |
|
![]() |
#31 |
1C
|
|
|
![]() |
#32 |
Боец
|
Поищите, почитайте - как передаются параметры между формами.
|
|
|
За это сообщение автора поблагодарили: Dolter (1). |
![]() |
#33 |
Участник
|
|
|
![]() |
#34 |
1C
|
Народ... расскажите пошагово, плз... мучаюсь, мучаюсь, но свой одинэсовский подход никак победить не могу :-(
есть форма сендера, на которой есть текст и 2 кнопки... мне необходимо, находясь в некой форме таблице (например CustTable) открыть эту форму по кнопке, причем так, чтобы в текст попало "CustTable;0123456789", где 0123456789 - это RecID и выполнить методы лежащие под теми двумя кнопками (соединиться и отправить месседж)... |
|
![]() |
#35 |
MCTS
|
На ините вашей формы:
X++: FormRun fr; super(); if (this.args()) fr = this.args().caller(); if (fr) staticText.text(strfmt("CustTable;%1", fr.dataSource(1).cursor().RecId)); |
|
![]() |
#36 |
Участник
|
|
|
![]() |
#37 |
Боец
|
2 Eldar9x: Как-то слишком лабораторно
![]() Прикрепил пример на основе 2х форм. |
|
![]() |
#38 |
1C
|
|
|
![]() |
#39 |
1C
|
X++: if (fr) sendStrCtrl.text(strfmt("%1;%2", fr.dataSource(1).name(), fr.dataSource(1).cursor().RecId)); |
|
![]() |
#40 |
Боец
|
Цитата:
fr.dataSource(1).name()
2. Почему именно 1й а не 2й ? ![]() Ну если из разных, то вкратце так X++: common record;
record = element.args().record();
sendStrCtrl.text(strfmt("%1;%2", tableid2name(record.tableId), record.RecId)); |
|