|
|
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
Есть проблема. PB6.5 Нужно подключить фискальный регистратор "Меркурий 119F". Компонент ActiveX использует для подключения метод OPEN и при обращению к нему PB выдает ошибку (Error accessing external object property open at line.........................). Скорее всего причина в конфликте с одноименным событием OPEN в PB. Вот скрипт: ole_cassa.object.NumPort = 1 ole_cassa.object.BaudRate = 9600 ole_cassa.object.Password = '0000' ole_cassa.object.Open() Может кто поможет решить проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 16:24 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
Насчет конфликта - полная фигня Может ole_cassa.open() попробовать Неплохо бы еще показать кусочек инициализации где вы коннектитесь к объекту ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 17:21 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
Может лучше создать наследника от OleObject и посмотреть на события error и externalExeption, по моему, ошибки ole там обрабатываются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 18:10 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. Это и есть кусок инициализации. Сажаю на окно компонент от меркурия, сообщаю ему свойства NumPort, BaudRate, Password и далее по команде OPEN он должен коннектится как и написано в описании компонента. Другие команды (не требующие соединения) выполняются без проблем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 08:16 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
Еще пробовал так: есть поддержка COM OLEobject cassa cassa = CREATE OLEobject ll_status = cassa.ConnectToNewObject("Incotex.MercuryFPrtCOM") сassa.PortNum = 1 cassa.BaudRate = 9600 cassa.Password = '0000' cassa.Open() Результат тотже. При обращении к Open выдает туже ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 08:34 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
У меня с ККМ все прекрасно было вот кусок кода KKM = CREATE OLEObject l_status = KKM.ConnectToNewObject("AddIn.FprnM45") IF l_status <> 0 THEN OLEEnabled=false else OLEEnabled=true // инициализируем устройство this.post init() END IF в инит if not OLEEnabled then return 1 // читаем статус ResultCode=KKM.GetStatus() If ResultCode = 0 Then // закрываем чек If KKM.CheckState <> 0 Then ResultCode=KKM.CancelCheck() If ResultCode <> 0 Then return 1 end if End If else // занимаем порт KKM.DeviceEnabled = True ResultCode=KKM.ResultCode If ResultCode <> 0 Then return 1 End If DeviceEnabled = True // Получить Параметры Устройства ResultCode=KKM.GetDeviceMetrics() If ResultCode <> 0 Then // необходима полная инициализация b_init_full=true return 1 End If // проверяем тип устройства if KKM.UType<>1 then return 1 end if и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 09:36 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
и правильней наверно надо было обращаться le_cassa.NumPort = 1 ole_cassa.BaudRate = 9600 ole_cassa.Password = '0000' ole_cassa.Open() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 09:39 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
C ЭлвесМикро у меня тоже проблем не было, пользую уже 3 года. Там подключение черз DeviceEnabled = True, а здесь Open(). Кстати не так давно хотел использовать компонент для соединения через FTP, и там нужно было потключаться командой Connect. Так вот и тогда был тот же конфликт связаный скорее всего с оператором Connect PB. Пришлось использовать другой компонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 09:57 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
Для FTP писал программу используя wodftpdlx Тоже маялся с примерно той же ошибкой В результате оказалось все до обидного просто ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 11:23 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
spas2001 В результате оказалось все до обидного просто И в чем же ошибка? To bara242 Эта же функция экспортируется из этого ActiveX компонента? Соответственно в HEX редакторе можно подшаманить на Opek например (если, конечно, в этом дело). Может быть перерегистрировать его нужно будет потом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 14:00 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
А какая-то фигня, сейчас не вспомню, исходняков тоже под рукой не осталось То-ли скобки поставил, то-ли фиг его знает, не могу сейчас вспомнить Помню только, что когда нашел сам офигел - и смешно и обидно Поэтому только и вспомнил ----------------------------------------------------------------------------- Главная деталь любой машины - голова ее владельца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 14:08 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
Спасибо за совет, тоже думал переименовать функцию в OCX-е. Буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 14:25 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
Попробуйте вместо ole_cassa.object.Open() написать ole_cassa.Open() ole_cassa.Open ole_cassa.Open = True PS. Вы нам чего-то не договариваете. Error accessing external object property open ... означает что синтаксически идет обращение к свойству, а у вас в примере написан вызов метода. PS2. Покажите доку по этой функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 14:55 |
|
||
|
Конфликт с событием (OPEN)
|
|||
|---|---|---|---|
|
#18+
Вот пример на VB: ' открытие соединения с ККМ Private Sub Open_Click() On Error GoTo ErrorHandler Mercury.PortNum = PortNumber.ListIndex + 1 Select Case PortSpeed.ListIndex Case 0 Mercury.BaudRate = 9600 Case 1 Mercury.BaudRate = 19200 Case 2 Mercury.BaudRate = 57600 Case 3 Mercury.BaudRate = 115200 End Select Mercury.Password = Password On Error GoTo ErrorHandler Mercury.Open ' проверка режима узкой ленты If (Mercury.CheckEcrStatus(6) = 0) Then NarrowMode.Value = 0 Else NarrowMode.Value = 1 End If Exit Sub ErrorHandler: ShowError End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2007, 15:37 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=35032569&tid=1336858]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 133ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...