Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.055 c
15-1155309115
Rouse_
2006-08-11 19:11
2006.09.03
Небольшой анонсик одной полезной утилиты, PEDump Shell Extension


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


4-1147241707
Patrick
2006-05-10 10:15
2006.09.03
Существование процесса


9-1132964689
frame
2005-11-26 03:24
2006.09.03
Кому интересно


15-1155014316
Иксик
2006-08-08 09:18
2006.09.03
О дезинформации





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский