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

dll или ocx
...
Рейтинг: 0 / 0
30.03.2007, 21:09
    #34428773
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
Физически 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
30.03.2007, 23:35
    #34428853
Gena87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
я нашел ocx файл "MSCAL.OCX" и куда его дальше?? в папку с программой?
если можно то поподробнее) а то первый раз с таким сталкиваюсь) спасибо заранее

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

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

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

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

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

На машине клиента ActiveX требует лицензию
...
Рейтинг: 0 / 0
01.04.2007, 23:30
    #34430160
Gena87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
СПАСИБО! )
...
Рейтинг: 0 / 0
02.04.2007, 23:23
    #34432661
Gena87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
а как узнать зарегестрирован данный activeX или хотя бы отследить сообщение об ошибке того что данный компанент не найдет, она появляется тогда когда запускается форма.
что бы при появлении данной ошибки зарегестрировать данный activeX?
...
Рейтинг: 0 / 0
02.04.2007, 23:42
    #34432670
Gena87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
пишу вот так:
Код: 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
03.04.2007, 07:13
    #34432832
Jura.K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
Сделайте вот так
Код: 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
03.04.2007, 10:32
    #34433147
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
Не ожидал, что кто-то тупо возьмет пример кода, даже не попытавшись разобраться, а из чего этот код состоит и что именно делает.

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

?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
03.04.2007, 11:04
    #34433292
проблема activeX
вот здесь обсуждалось это уже...
/topic/400641&hl=

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

Кто знает помогитеее
...
Рейтинг: 0 / 0
09.07.2010, 14:03
    #36732642
G
G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
Tools-Component Gallery
Там ищи.
...
Рейтинг: 0 / 0
09.07.2010, 15:00
    #36732794
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
Это немного другой вариант решения, я с галереей компонентов еще не работал.
Буду изучать.
В моем случае. Я заходил в Сервис-Параметры-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
09.07.2010, 15:10
    #36732822
проблема activeX
Alexandr29Их много, как узнать какой модуль соответствует mscal.ocxЭто модуль из офиса. Вот там и ищите.
...
Рейтинг: 0 / 0
09.07.2010, 15:27
    #36732878
Alexandr29
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема activeX
А по подробнее можно
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблема activeX / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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