powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблема activeX
25 сообщений из 32, страница 1 из 2
проблема activeX
    #34428525
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавил на форму календарь Calendar control 8 и на машине на которой фокса нету и не было пишет что не может найти данный класс
...
Рейтинг: 0 / 0
проблема activeX
    #34428530
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может надо какой то файл кидать в папку с програамой или подключать?
...
Рейтинг: 0 / 0
проблема activeX
    #34428591
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зарегистрируйте
с пом regsvr32

dll или ocx
...
Рейтинг: 0 / 0
проблема activeX
    #34428773
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Физически ActiveX-компонент - это отдельный файл. Либо с расширением OCX, либо с расширением DLL.

По самой своей природе - это "внешние", по отношению к FoxPro файлы. Т.е. они не входят в Run-Time библиотеку FoxPro. Их надо поставлять и регистрировать на машине клиента отдельно.

Узнать, какой же физически файл соответствует Вашему ActiveX компоненту можно двумя способами:

1) Если Вы добавляете ActiveX-компонент "вручную" (а не из галлереи компонетов) или же знаете как этот ActiveX называется, то можете посмотреть имя OCX-файла на этапе вставки ActiveX-компонента.

Открываете форму на модификацию - в ToolBar выбираете иконку "OLE" и щелкаете по форме - в открывшемся окне устанавливаете переключатель в положение "Insert Control" и в списке появившихся компонент находите нужный ActiveX по его имени. Под списком компонент отображается имя файла OCX внутри которого этот компонент физически находится

2) Если Вы добавляете ActiveX-компонент из галлереи компонентов, т.е. добавляете не сам ActiveX, а экземпляр класса, который уже использует этот ActiveX, то тут придется использовать "хакерские трюки".

Физически, файл VCX - это обычная таблица (файл DBF). Поэтому ее можно открыть как обычную таблицу командой USE.

В свойстве ClassLibrary находите имя файла VCX. Далее примерно такой код (для примера взят класс Web Browser Control из FFC)

Код: plaintext
1.
2.
3.
use (home()+'gallery\_webview.vcx')
locate for not empty(ole2)
?ole2

Т.е. имя файла OCX или DLL записано в одной из записей в поле с именем OLE2
...
Рейтинг: 0 / 0
проблема activeX
    #34428853
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я нашел ocx файл "MSCAL.OCX" и куда его дальше?? в папку с программой?
если можно то поподробнее) а то первый раз с таким сталкиваюсь) спасибо заранее

P.S.думал что проблем будет меньше с этими aktiveX)
...
Рейтинг: 0 / 0
проблема activeX
    #34429001
puls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.MSCAL.OCX копирую на c:\windows\system32\ и заработает.
...
Рейтинг: 0 / 0
проблема activeX
    #34429005
puls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще посоветоваль исползовать Microsoft Date and Time Picker Control 6(SP4).(mscomct2.ocx)
Удачи.
...
Рейтинг: 0 / 0
проблема activeX
    #34429106
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну калькулятор мне показался красивее)
я там этот файл и нашел)
а как там зарегестрировать? потому что при установке даж не знаю как туда записать)
...
Рейтинг: 0 / 0
проблема activeX
    #34429115
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
калькулятор =кадендарь)) опечатался)
...
Рейтинг: 0 / 0
проблема activeX
    #34429194
pitermax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишешь батник
regsvr32\путь к ocx.
И он регистрируется
...
Рейтинг: 0 / 0
проблема activeX
    #34429320
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для регистрации любых библиотек в системе Windows используется специальная программа RegSvr32.exe, которая входит в поставку Windows. Делается это из командной строки Windows (кнопка "Пуск" - "Выполнить") примерно такой командой

Код: plaintext
regsvr32.exe C:\Windows\System32\Имя_файла.OCX

Здесь вместо "Имя_файл" надо написать реальное имя Вашего файла OCX. Файлы OCX, как правило, кладут в директорию System32. Исходя из этого и написана команад. Но Вы вполне можете положить файл OCX в любое другое место. Соответственно, надо будет подкорректировать команду регистрации.

Только все это надо делать, входя в систему Windows с правами администратора.

Кстати, при использовании ActiveX на машине клиента может возникнуть ошибка с требованием установить лицензию (но может и не возникнуть). Если возникнет, то посмотрите здесь

На машине клиента ActiveX требует лицензию
...
Рейтинг: 0 / 0
проблема activeX
    #34430160
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПАСИБО! )
...
Рейтинг: 0 / 0
проблема activeX
    #34432661
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как узнать зарегестрирован данный activeX или хотя бы отследить сообщение об ошибке того что данный компанент не найдет, она появляется тогда когда запускается форма.
что бы при появлении данной ошибки зарегестрировать данный activeX?
...
Рейтинг: 0 / 0
проблема activeX
    #34432670
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишу вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
lсPath=JustDrive(getenv("windir"))+'\Windows\System32'
IF NOT FILE(JustDrive(getenv("windir"))+'\Windows\System32\MSCAL.OCX') THEN 
	COPY FILE "MSCAL.OCX" TO &lсPath
ENDIF
lсPath=JustDrive(getenv("windir"))+'\Windows\System32\MSCAL.OCX'
RUN regsvr32.exe &lcPath 
ругается на последнюю строку, как записать адрес находящийся в переменной?
...
Рейтинг: 0 / 0
проблема activeX
    #34432832
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
LOCAL lcRunCommand
lсPath=JustDrive(getenv("windir"))+'\Windows\System32'
IF NOT FILE(JustDrive(getenv("windir"))+'\Windows\System32\MSCAL.OCX') THEN 
	COPY FILE "MSCAL.OCX" TO &lсPath
ENDIF
lcRunCommand='RUN regsvr32.exe '+lсPath
&lcRunCommand
...
Рейтинг: 0 / 0
проблема activeX
    #34433147
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не ожидал, что кто-то тупо возьмет пример кода, даже не попытавшись разобраться, а из чего этот код состоит и что именно делает.

Был вопрос: как узнать имя логического диска, в котором установлена системе. Я и написал:

?JustDrive(getenv("windir"))

Лично я после такого примера сразу же полез бы смотреть в HELP, а что такое JustDrive() и GetEnv() и что они возвращают по отдельности. Мне бы и в голову не пришло "тупо" скопировать имя диска в свой код, даже не попытавшись разобрать код примера.

Из приведенного кода видно, что эта буква понадобилась для того, чтобы указать путь доступа к одной из системных папок, внутри каталога Winodws. Так что же возвращает

?GetEnv("WinDir")

А возвращает она путь доступа к системной папке, в которую загружена операционная система. Ну, и зачем надо потом выделять из нее букву диска, если все-равно нужен ВЕСЬ путь? Чтобы потом герорически с ним бороться?

Следует иметь в виде, что в разных операционных системах, по умолчанию, путь может быть либо C:\Windows, либо C:\WinNT. Это еще не считая тех случаев, когда пользователь ИЗМЕНИЛ имя системной директории. И ЧТО будете дописывать после имени диска?

Т.е. чтобы посторить путь доступа в данном случае надо писать так:

Код: plaintext
lcPath = AddBS(GetEnv("WinDir"))+"System32\MSCAL.OCX"

Далее, следует понимать, что факт наличия или отсутствия файла по определенному пути доступа ничего не говорит о факте регистрации этого файла в системном реестре.

Кроме того, сам процесс регистрации необходимо выполнять только под правами админа.

Для целей установки приложения на компьютер клиента и регистрации всех необходимых компонент уже довольно давно были разработаны специальные программы, называемые инсталяторами. Вместе с FoxPro поставляется усеченная версия одного из таких инсталяторов: InstallShield.

Вот при помощи этой программы и надо создать дистрибутив своего приложения, включив в него все необходимые Run-Time библиотеки, в том числе и используемые ActiveX. При запуске инсталятора на машине клиента он сам все установит и зарегистрирует. Разумеется, если все правильно будет настроено.
...
Рейтинг: 0 / 0
проблема activeX
    #34433292
вот здесь обсуждалось это уже...
/topic/400641&hl=

там же есть пример проверки регистрации компоненты activex и в случае отсутствия таковой её регистрация...
...
Рейтинг: 0 / 0
проблема activeX
    #34433306
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор%systemroot%\system32\regsvr32.exe %systemroot%\system32\MSCAL.OCX
...
Рейтинг: 0 / 0
проблема activeX
    #34434753
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, понял) обещаю исправиться)
спасибо всем!
...
Рейтинг: 0 / 0
проблема activeX
    #34434761
Gena87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а на счет инстолятора я до него еще не дошел, но надеюсь могу настроить)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
проблема activeX
    #36732396
Alexandr29
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня программа, после установки, ругается на отсутствие mscal.ocx
ВОПРОС
Как узнать какой модуль необходимо выбрать в installShield Express
для того чтобы mscal.ocx автоматически устанавливался?

Кто знает помогитеее
...
Рейтинг: 0 / 0
проблема activeX
    #36732642
G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
G
Гость
Tools-Component Gallery
Там ищи.
...
Рейтинг: 0 / 0
проблема activeX
    #36732794
Alexandr29
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это немного другой вариант решения, я с галереей компонентов еще не работал.
Буду изучать.
В моем случае. Я заходил в Сервис-Параметры-ActiveX control выбирал Calendar Control 8.0
после чего добавлял календарь на форму.
Запускаю, все работает
При помощи installShield Express делаю установочник
Устанавливаю программу на другом ПК (где нет FoxPro)
При запуска программа, ругается на отсутствие mscal.ocx
Если в ручную скопировать mscal.ocx на комп, то все работает нормально

Вопрос
Как заставить installShield Express, при установки программы установит mscal.ocx?

В installShield Express есть раздел registributables-installShield Objects/Merge Modules
здесь необходимо отметить какие модули при установке должны устанавливаться с программой

Их много, как узнать какой модуль соответствует mscal.ocx
...
Рейтинг: 0 / 0
проблема activeX
    #36732822
Alexandr29Их много, как узнать какой модуль соответствует mscal.ocxЭто модуль из офиса. Вот там и ищите.
...
Рейтинг: 0 / 0
проблема activeX
    #36732878
Alexandr29
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по подробнее можно
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблема activeX
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]