Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];

Вниз

Создание компонент из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-26120
Gumbert-Gumbert
2002-04-24 00:12
2002.05.09
вопрос по написанию компонент


14-26236
lipskiy
2002-03-14 13:50
2002.05.09
Правда ли то, что XP, если она нелецензионная, может грохнуть винт на физическом уровне?


3-25976
Виктор5
2002-04-13 10:38
2002.05.09
Знатоки, как вывести в случайном порядке записи из БД в DBGrid


1-26180
Ромик
2002-04-23 15:02
2002.05.09
Вызов метода дальнего предка


3-26036
Лёша
2002-04-17 05:24
2002.05.09
Можно ли из UDF запустить хранимую процедуру.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский