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

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

Компонент в DLL


Мрась ©   (2006-06-07 13:20:00) 

Подскажите как поместить на форму компонент, описанный в dll.
Раньше код выглядел примерно так:

type
 IMyInterface = interface
   ...
 end;

 TMyObject = class(T..., IMyInterface)
   ...
 end;

var
 MyObject: IMyInterface

в теле программы делал так:

MyObject:= TMyObject.Create(...);

и всё было ок
затем решил подгружать MyObject из DLL функцией
function LaodMyObject(Owner: TComponent): IMyObject; external 'my.dll';
и весь код, связанный с TMyObject перенёс в DLL
программа начала косячить в тех местах, где обращается к MyObject.
пошаговая отладка показала, что при создании компонента из dll конструктор TMyObject.Create игнорируется, обрабатывается конструктор родителя.
подскажите plz в чём проблема


Мрась   (2006-06-07 15:04:00) [1]

УЖОС!
я нашёл ошибку... я конструктор засунул в секцию private
извиняюсь очень

P.S. теперь ошибка в чём-то другом ))


tesseract   (2006-06-07 15:04:00) [2]

у DLL много точек входа.
У неё отстуствуют глобальные переменные. Переменные, в том числе и твоей формы будут доступны только до тех пор пока не вернёться функция.

те там окно about показать можно, но создавать и разрушать его можно только внутри функции.

Если хочешь чтобы даннеы сохранялись, опубликуй фрейм в ActiveX. Мастер в Delphi есть.


Мрась   (2006-06-07 14:44:00) [3]

это ответ или способ уйти от ответа?
если ответ, то нельзя ли поподробнее


tesseract   (2006-06-07 14:20:00) [4]

Тут много по формам в dll, не работают!.

Ну что нельзя через ISpecifyPropertyPage  или ActiveX форму использовать?


Наверх

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