Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.03;
Скачать: CL | DM;

Вниз

Контрол из DLL   Найти похожие ветки 

 
Zexx ©   (2006-07-18 21:43) [0]

Подскажите почему не работает следующий код:

Есть класс, объявленный в DLL, например:
 TEditClass = class of TEdit;
 TMyEdit = class(TEdit)
 public
 ...
 end;

и функция
 function GetEditClass : TEditClass;
 begin
   Result := TMyEdit;
 end;


В главном приложении имеется такой код:
 function GetEditClass:TEditClass; external "edit.dll";
var
 Edit : TEdit;
begin
 Edit := GetEditClass.Create(Self); // компонент нормально создается, но только пытаемся назначить ему родителя
 Edit.Parent := Panel1;  // в рантайме вываливается исключение: "Cannot assign a TFont to a TFont".

Подскажите в чем ошибка и каким образом можно использовать подобные конструкции.
end;


 
Юрий Зотов ©   (2006-07-18 22:07) [1]

> Подскажите в чем ошибка

Exe и DLL компилируются независимо, поэтому для одного и того же класса в каждом из них - своя VMT (то есть, один и тот же класс в каждом из них  - это два РАЗНЫХ класса).

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

Компилировать Exe и DLL с общими run-time пакетами. Или вообще заменить DLL на BPL. Или использовать интерфейсную модель вместо объектной.


 
Игорь Шевченко ©   (2006-07-18 22:41) [2]


> Cannot assign a TFont to a TFont"


Любителям ООП в DLL посвящается...:)


 
DimaBr   (2006-07-19 08:38) [3]

http://www.google.com/search?client=opera&rls=ru&q=Cannot+assign+a+TFont+to+a+TFont&sourceid=opera&ie=utf-8&oe=utf-8


 
17   (2006-07-19 19:04) [4]

>>>Или использовать интерфейсную модель вместо объектной.
Как вариант использовать сборки .Net



Страницы: 1 вся ветка

Текущий архив: 2006.09.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.058 c
15-1154760816
McSimm
2006-08-05 10:53
2006.09.03
Пункт 2 правил форума


2-1155460952
Vovan#1
2006-08-13 13:22
2006.09.03
Назначит событию процедуру


15-1154711896
retun
2006-08-04 21:18
2006.09.03
Сколько денег нужно дарить на свадьбу?


2-1155462921
Triton
2006-08-13 13:55
2006.09.03
Модератор - чудак на букву "М"


2-1155419884
ronyn
2006-08-13 01:58
2006.09.03
ACSII получить номер символа