Форум: "Основная";
Текущий архив: 2006.09.03;
Скачать: [xml.tar.bz2];
ВнизКонтрол из 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.068 c