Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2013, 21:56   #1
iworm2009
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 51
По умолчанию

Здравствуйте.
все условно...
есть dll (как плагин)
в ней:
Код:
type
  TPanel1 = class(TPanel)
    CheckBox1: TCheckBox;
  private
    constructor Create(AOwner: TComponent); override;
    procedure CheckBox1Click(Sender: TObject);
  end;

constructor TPanel1.Create(AOwner: TComponent);
begin
  inherited;
  CheckBox1 := TCheckBox.Create(self);
  CheckBox1.Parent := self;
  checkBox1.Position.Y := 50;
  checkBox1.OnClick := CheckBox1Click;
end;

procedure TPanel1.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.IsChecked then
    CheckBox1.Text := 'Check'
  else
    CheckBox1.Text := 'No Check';

end;
вопрос в том, как экземпляр правильно передать в программу-хост при том, что она ничего не знает об TPanel1

или наоборот в dll передавать объект для TPanel1.Parent?

Последний раз редактировалось Stilet; 12.06.2013 в 22:23.
iworm2009 вне форума Ответить с цитированием
Старый 12.06.2013, 22:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Опиши этот класс в отдельном модуле, который используй и в ДЛЛ и в своей программе. Тогда у них типы сойдутся, друг друга должны понять.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.06.2013, 22:32   #3
iworm2009
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 51
По умолчанию

нет, так не пойдет. так вообще пользы от dll меньше чем вреда
программа не знает об классе в dll ничего кроме того, что
а) класс в dll потомок TPanel
б) программа "положит" экземпляр из dll на TabItem динамически созданный в в программе
iworm2009 вне форума Ответить с цитированием
Старый 12.06.2013, 22:50   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Неправильно постоили модель плагинов.
Программа-хост и знать не знает как и чего делать с вашей панелью.

Программа-хост должна предоставлять средства, а не учится их юзать.
Человек_Борща вне форума Ответить с цитированием
Старый 12.06.2013, 22:58   #5
iworm2009
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Неправильно постоили модель плагинов.
Программа-хост и знать не знает как и чего делать с вашей панелью.

Программа-хост должна предоставлять средства, а не учится их юзать.
т.е все-таки программа хост должна передать указатель на экземпляр TTabItem. А dll сама будет думать, что с ним делать?!
iworm2009 вне форума Ответить с цитированием
Старый 12.06.2013, 23:37   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

iworm2009, да. Хост-программа передаёт указатель на элемент управления, а внутри DLL происходит вся магия.
Человек_Борща вне форума Ответить с цитированием
Старый 13.06.2013, 02:02   #7
iworm2009
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 51
По умолчанию

Соответственно уничтожение:
1. Dll уничтожает все что создала на TabItem
2. хост-программа уничтожает TabItem?
iworm2009 вне форума Ответить с цитированием
Старый 13.06.2013, 02:09   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

iworm2009, DLL убирает всё что натворило, остальное делает программа.
Человек_Борща вне форума Ответить с цитированием
Старый 13.06.2013, 02:14   #9
iworm2009
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 51
По умолчанию

спасибо все просто и понятно +
iworm2009 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача аргументов в фабрику объектов Rangok Общие вопросы C/C++ 4 11.10.2012 16:37
обработка объектов при помощи DLL Kompuklumba Общие вопросы Delphi 4 06.11.2010 15:20
Создание RunTime объектов в DLL MsDos Общие вопросы Delphi 2 14.09.2010 01:13
передача объектов как параметров функций в Dll Umen Общие вопросы Delphi 9 12.11.2006 19:31