Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание OCX, как? 
:(
    Опции темы
Igel
Дата 20.2.2003, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.8.2002

Репутация: нет
Всего: нет



Народ, подскажите, может кто сталкивался, как можно в Дельфе создать OCX-компонент. И вообще что это такое, что необходимо?
PM MAIL   Вверх
stab
Дата 20.2.2003, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



Для Delphi 6:

1. Пишеш обычный VCL-компонент и добавляеш его в палитру компонентов.
2. File->New->Other->ActiveX->ActiveX Control
3. VCL Class Name = твой VCL-компонент
4. остальное понятно


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Igel
Дата 21.2.2003, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.8.2002

Репутация: нет
Всего: нет



Во-первых, у меня Дельфа 5.5
Во-вторых, мой компонент почему-то не виден в списке VCL Class Name
В-третьих, не понятно, что дальше!!
PM MAIL   Вверх
stab
Дата 21.2.2003, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



Цитата
Во-первых, у меня Дельфа 5.5


все то ж самое тока менюшки другие

Цитата
Во-вторых, мой компонент почему-то не виден в списке VCL Class Name


Component->Install Component... или сразу при содании VCL компонента нажать Install.

Цитата
В-третьих, не понятно, что дальше!!

А чего дальше-то, если у тя VCL компонент полностью написан, то ни чего дальше делать и не надо. В ActiveX компоненте будет реализовано все, что ты сделал для VCL. Если тебе не понятно как писать VCL компоненты, то лучше купи книгу, на форуме этому толком не научишся.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Igel
Дата 25.2.2003, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.8.2002

Репутация: нет
Всего: нет



Ладно, может ты не понял, но поясню подробнее:
1. создаю VCL-компонент, по образу готового и хочу его отдать коллеге, который работает в Басике, и ему он нужон ввиде OCX. Как говорится, Ежу понятно...
2. Значит так, он у меня есть (VCL-компонент) и работает. Я хОчу его в OCX преобразовать. Жму File - New... - ActiveX, в списке ActiveX Control. Затем Ок!
3. Появляется оконце - "ActiveX Control Wizard". Но в списке VCL Class Name нету моего компонента. Как впрочем и того, по образу и подобию которого я делал свой.

Наверное в последнем и загвоздка. Не все VCL-компоненты можно преобразовать в OCX. Так или еще что-то забыл? Если так, то в чем загвоздка, что нужноconfused.gif
PM MAIL   Вверх
FinAlex
Дата 25.2.2003, 22:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Создай ocx от TPanel и в конструкторе налепи на на эту панель че хошь, например экземпляр своего класса. может заработает...

  Вверх
Cashey
Дата 25.10.2006, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 2
Всего: 60



Разовью тему проблемы
Цитата(cully @  20.2.2003,  19:35 Найти цитируемый пост)
Для Delphi 6:

1. Пишеш обычный VCL-компонент и добавляеш его в палитру компонентов.
2. File->New->Other->ActiveX->ActiveX Control
3. VCL Class Name = твой VCL-компонент

ОК. Этап пройден. Дальше остается только откомпилировать проект и тут начинается....:
1.  В автоматически созданном Delphi модуле ***Impl1 в секции initialization прописывается
Код

initialization
  TActiveXControlFactory.Create(
    ComServer,
    TMyControlX,
    TMyControl,
    Class_MyControlX,
    1,
    '',
    0,
    tmApartment);
end.

Но никакого Class_MyControlX в природе не существует.
2. Ругается на несовместимость типов TStrings и IStrings. Об этом я уже писал

Потом может и еще чего-то вылезит. Для начало может кто-то сможет разъяснить проблему под пунктом 1



--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Cashey
Дата 25.10.2006, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 2
Всего: 60



Хотя.... базовый клас StringGrid к примеру, откомпилировался нормально....


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Yanis
Дата 25.10.2006, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата
File -> New -> Other -> ActiveX -> ActiveX Control
ActiveX Control Wizard: { 
    VCL Class Name: "TButton [StdCtrls]";
    New ActiveX Name: <default/for_choice>; 
    Implementatiosn Unit: <default/for_choice>;
    Project Name: <default/for_choice>;
    Threading Model: Apartment;
    ActiveX Control Options: {
  <default/for_choice>
    };
};
-> Ok
-> Shift + Ctrl + S -> For example: "C:\testocx\" (pas and dpr)
-> Shift + F9
-> Win + R -> C:\testocx
Our ocxy (ButtonXControl1.ocx in my case) must be there ;)


Это сообщение отредактировал(а) Yanis - 25.10.2006, 10:19


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Cashey
Дата 25.10.2006, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 2
Всего: 60



Цитата(Yanis @  25.10.2006,  11:18 Найти цитируемый пост)
TButton [StdCtrls]

из стандартной кнопки создается, проверено, а вот из пользовательского (работающего) компонента - нет smile 
Конкретный пример описал здесь 


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Yanis
Дата 29.10.2006, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Cashey @  25.10.2006,  11:30 Найти цитируемый пост)
из стандартной кнопки создается, проверено, а вот из пользовательского (работающего) компонента - нет 

Прочитал в справке, что для того что бы кастомный компонент можно было использовать в ActiveX wizard-е, нужно регистрировать компонент в среде при помощи RegisterNonActiveX. Точнее, использовать её после RegisterComponents в процедуре Register.
У меня так и не получилось заставить появиться мой компонент в Wizard-е smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.