Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Frame в dll


Страницы:   1 2

Ekaterina ©   (2002-09-03 10:10:00) 

Вроде и ситуация-то не хитрая. Я уже как-то спрашивала, но так ни чего и не прояснилось. Может кто-нибудь всё-таки знает.
Есть dll. В ней форма и фрейм.
library Project2;
uses
SysUtils,
Classes,
Forms,
Dialogs,
Unit1 in "Unit1.pas" {Frame1: TFrame},
Unit2 in "Unit2.pas" {Form2};
{$R *.res}
procedure Test;
begin
Form2:=TForm2.Create(Application);
try
frame1:=TFrame1.Create(Form2);
frame1.Parent:=Form2;
Form2.Show;
Application.ProcessMessages;
Sleep(2000);
finally
frame1.Free;
form2.Free;
end;
end;
exports
Test;
begin
end.

Вызываем процедуру Test из основной программы. Все работает. Теперь помещаем на фрейм какой-нибудь компонент с TStrings-ами, например, ComboBox. И задаём ему непустой Items (при пустом тоже всё нормально). На строке frame1:=TFrame1.Create(Form2);получаем ошибку: "Error reading ComboBox1.Items.Strings: Control "Frame1" has no parent window".
Если то же самое делать без dll, то всё опять работает и с Items-ами.
Просьба: создание Items-ов в Runtime и т.п. не предлагать. Вопрос не в том, как это обойти, а почему не работает так?


Ekaterina   (2002-09-03 11:16:00) [21]

А конкретней?


Ученик   (2002-09-03 11:10:00) [22]

Ошибка тогда другая


Ekaterina   (2002-09-03 11:08:00) [23]

Да нет, у меня Application.Handle не равен 0. В dll он тот же, что и в основной программе.


Ученик   (2002-09-03 10:50:00) [24]

Проблема в том, что Application.Handle в DLL равен 0, инициализации его (Application.Handle) помогает показать форму, но ошибка все-равно происходит, правда другая


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо