ОК, я был достаточно смел, чтобы загрузить и зарегистрировать этот OCX и попытаться повторить то, что вы сделали.И да, я обнаружил то же поведение, о котором вы сообщали.
Итак, я посмотрел на импортированный модуль библиотеки типов в XE2.Помните, что в XE2 компонент появляется в палитре.Внизу блока находится этот код:
procedure Register;
begin
RegisterComponents(dtlOcxPage, [TTAK_Control]);
end;
Этот код регистрирует компонент в палитре, и он отсутствует, когда OCX импортируется в Delphi 6, единственную старую версию Delphi, которую я должен передать.Действительно, весь компонент TTAK_Control
отсутствует в единице импорта.Иногда процесс импорта завершается неудачей.
Поэтому я просто взял импортированный файл библиотеки типов из XE2 и скопировал его поверх эквивалентной единицы в D6.Это единица с именем TAK_ControlBoard_TLB
.Когда я компилировал в D6, была ошибка компилятора, потому что UIntPtr
не был распознан.Замените это на Cardinal
в D6.В этот момент компиляция завершается успешно, и компонент появляется в палитре.
Теперь, когда я пытаюсь добавить его в форму, возникает ошибка OLE, но я не могу с этим ничего поделать, так как ничего не знаюо компоненте.Обратите внимание, что эта ошибка возникает как в XE2, так и в D6.