Страница 1 из 1

В Delphi 8 не работаю компоненты ActiveX

Добавлено: 28 июн 2006, 23:12
Viktor Zull
Никак не получается использовать ActiveX компоненты в Delphi 8.
Компоненты устанавливаются, отображаются в списке, и в палитру компонентов добавляются, а когда пытаюсь разместить компонент на форме, вылетает ошибка: типа неверный путь к файлу ocx или dll.
Проверил, файлы на диске есть, путь к ним прописан верно, и в реесте запись об ActiveX компоненте есть. Но ошибка все равно появляется.
Не могу понять почему это происходит.

Может кто сталкивался с такой ситуацией, помогите разобраться.

Добавлено: 29 июн 2006, 16:21
Eugie
Попробуйте их заново зарегистрировать: regsvr32 <dllname>

Добавлено: 02 июл 2006, 00:51
Viktor Zull
Попробовал зарегистрировать. Было сообщение об успешной регистрации. Но в Delphi 8 все равно не работают.

Те же самые компоненты работают в Delphi 7.

Нашел в интернете Update2 для Delphi8, update1 уже был. Поставил. Но ни чего, все таже ошибка о невозможности использования компонента.

Видел на других форумах такой же вопрос, но там на него никто не ответил.

Прошу Вас предположить, что может быть еще причиной даанной проблемы. Очень хотелось бы разобраться в чем дело.

Добавлено: 03 июл 2006, 15:22
Eugie
Вот ответ на одном из форумов, похоже, ваш случай:
Q: I want to use ActiveX in Delphi 2005, but the forms designer does not accept ActiveX controls to a form. It gives error message "Failed to add a reference to the ActiveX type library. Ensure that it is properly registered. ...". How to solve this problem?
A:Borland Delphi 8.0 (2005) and Borland C# Builder 1.0 have bug and they accept ActiveX controls only if US locale is used. Other locales are ignored.
Here are steps which help to solve this problem:
1. Uninstall the ActiveX controls from the Tools Palette
2. Change to US Locale
3. Reboot
4. Reinstall the ActiveX control to the Tools Palette, and.. voila! It works.

Добавлено: 03 июл 2006, 21:49
Viktor Zull
Да, этот тот самый случай. И ошибка точно та:
"Failed to add a reference to the ActiveX type library. Ensure that it is properly registered. ...".

Вот только объяснение не совсем понятно:

1. Удалить ActiveX компоненты из палитры компонентов.
2. Изменить US locale. "Us locale" - что нужно изменить?
3. Перезагрузить????
4. Установить ActiveX на палитру компонентов, и все должно заработать.

Ну с первым шагом все ясно. А вот на втором что нужно сделать?
И что имеется ввиду на третьем шаге - перезапустить Delphi или комп перезагрузить?

Добавлено: 03 июл 2006, 22:07
Eugie
Думаю, речь о настройках ОС Regional Options -> reboot computer.

Добавлено: 03 июл 2006, 22:34
Viktor Zull
Это настройки в реестре?

Добавлено: 04 июл 2006, 00:49
Eugie
Все настройки в конечном счете оказываются в реестре :)
Да нет, все проще: Control Panel>Regional and language options, закладка Regional options, combobox рядом с кнопкой Customize... (так под XP, в др.версиях виды может отличаться). Потом перезагрузить компьютер. Почему это должно помочь - могу только догадываться. ИМХО, баг видимо связан с какими-то настройками, типа десятичного разделителя, формата даты и т.п.

Добавлено: 05 июл 2006, 00:09
Viktor Zull
Надо же, действительно сработало. Стоило только поменять формат представления даты на Английский(США).

Спасибо Вам, Eugie, что помогли разобраться.