Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка Frame из Dll. Ошибка! 
:(
    Опции темы
FShadow
Дата 1.10.2010, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 8.12.2006
Где: Беларусь, г. Минс к

Репутация: нет
Всего: -1



Господа программисты помогите разобраться.
Здесь на форуме искал но полного решения вызова фреймов не нашел.
Есть код создания фрема в Dll
Код

function ShowFrame(aParent: TWinControl): TFrame;stdcall;
begin
  Result:= TfrContact.Create(aParent);
  Result.Parent := aParent;
end;  


Код процедуры создания фрейма в основной программе
Код

procedure TForm1.FormCreate(Sender: TObject);
var
  NewTabSheet: TTabSheet;
  frMy: TFrame;
begin
       // Создаем страницу в TPageControl
       NewTabSheet:= TTabSheet.Create(PageControl1);
       NewTabSheet.Visible:= True;
       NewTabSheet.PageControl:= PageControl1;
       NewTabSheet.Caption:= GetNameModule;

       frMy:= ShowFrame(NewTabSheet);
       frMy.Visible:= True;
     end;
end;


При вызове его из основной программы вылетает ошибка "Cannot assign a TFont to a TFont".
Как ее победить и что надо сделать чтоб фрейм из dll отображался нормально?


PM MAIL   Вверх
bems
Дата 1.10.2010, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Использовать bpl


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Frees
Дата 1.10.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54





--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
FShadow
Дата 7.11.2010, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 8.12.2006
Где: Беларусь, г. Минс к

Репутация: нет
Всего: -1



Если кому еще интересно нашел в сети следующее решение. Использовать bpl не требуется.

Код


procedure ShowFrame(App: Integer; aParent: TWinControl);stdcall;
var
  DllApp: TApplication;
begin
  DllApp:= Application;
  Application:= TApplication(App);
  Frame1 := TFrame1.Create(Application);
  Frame1.ParentWindow := aParent.Handle;
  SetParent(Frame1.Handle, aParent.Handle);
  Application:= DllApp; 
end; 
 


вот и все. Тему можно считать закрытой.
PM MAIL   Вверх
bems
Дата 7.11.2010, 14:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



У приложения и длл разные классы. Подобные решения работают до тех пор пока тебе везет


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Caduser
Дата 9.12.2011, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 2.10.2006
Где: г. Хабаровск

Репутация: нет
Всего: 1



Цитата(FShadow @ 7.11.2010,  12:43)
Если кому еще интересно нашел в сети следующее решение. Использовать bpl не требуется.

Код


procedure ShowFrame(App: Integer; aParent: TWinControl);stdcall;
var
  DllApp: TApplication;
begin
  DllApp:= Application;
  Application:= TApplication(App);
  Frame1 := TFrame1.Create(Application);
  Frame1.ParentWindow := aParent.Handle;
  SetParent(Frame1.Handle, aParent.Handle);
  Application:= DllApp; 
end; 
 


вот и все. Тему можно считать закрытой.

Такой вариант работает но фрейм не подгоняется под размер формы
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1206 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.