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

Вниз

Создание компонент из DLL   Найти похожие ветки 

 
Huliganka   (2002-04-24 22:28) [0]

Здравстуйте, люди добрые!

В общем, есть следующая проблема, и я не знаю, как её побороть. Есть DLL, в которой всего навсего одна функция такого вида

function AddBtn(AOwner: TWinControl): TButton;
begin
Result := TButton.Create(AOwner);
end;

Далее, есть приложение, которое вызывает эту функцию (btn := AddBtn(self);). Короче говоря, хочу, чтобы на мою форму добавилась ещё одна кнопка. Так вот, функция вызывается нормально и возвращает то, что нужно, но при попытке присвоить родителю новой кнопки собственно мою форму (btn.Parent := self;) страшно ругается, говорит "Cannot assign TFont to a TFont". Вот, собственно и всё.

Может, кто знает, в чём тут проблема и как с ней бороться?? Буду очень благодарна. Заранее спасибо!


 
Игорь Шевченко ©   (2002-04-25 09:58) [1]

День добрый,

Нельзя так делать :-)
Если очень хочется, то надо использовать пакеты (BPL), в которых
создавать кнопку и передавать ее в основное приложение. Можно создавать кнопку в основном приложении по факту наличия DLL, к примеру. Дело в том, что TFont в EXE и TFont в DLL - это ДВА РАЗНЫХ КЛАССА, которые ничего друг о друге не знают, и приведены оператором AS друг к другу быть не могут :-( А именно это приведение и пытается выполниться при присвоении btn.Parent := Self.

Можно еще попробовать при создании кнопки в DLL указать ParentFont := false, но где-то еще вы обязательно натолкнетесь на несовместимость классов в DLL и в EXE.

С уважением,

С уважением,



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
14-26249
lel
2002-04-01 11:19
2002.05.09
Оцените, выскажите оценку, моя большая просьба 8))


1-26075
Aleksandr
2002-04-25 14:21
2002.05.09
Как убить загружающуюся DLL на этапе запуска программы?


1-26114
volph
2002-04-24 10:14
2002.05.09
Как узнать есть ли в узле дерева потомок?


4-26285
JAndrey
2002-02-28 07:12
2002.05.09
Где найти описание USER32.dll, Kernel32.dll ..........


3-26018
weak
2002-04-16 14:05
2002.05.09
удаление записи