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

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

Проблема доступа к методам и свойствам объектов главной программы [WinXP]


Sergey__ ©   (2006-04-07 16:28:00) 

Уважаемые знатоки, подскажите что я не так делаю или дайте ссылку, где можно об этом почитать. Пишу плагин для своей же проги.
procedure InitPlugin(PlugClass: TPluginInterface);
var
ScGB1P,
MainFormP        : TComponent;
begin
PInterface := PlugClass;
PlugInClass := TPlugInClass.CreateIt;
PlugClass.AddMenuItem('Переинициализация   каналов',PlugInClass.ReInitChannels);

MainApp := PInterface.GetApplication; //возвращает ссылку на главную программу
MainFormP := MainApp.FindComponent('MainForm');
ScGB1Р := MainFormP.FindComponent('ScGB1');//компонент TRadioGroup
 (ScGB2P as TRadioGroup).Visible := False;// когда доходит до этого места, вылетает исключение "Invalid class typecast"
В чем может быть дело ?


GrayFace   (2006-04-08 16:40:00) [1]

Если плагины имеют свои формы, то надо подругому. Ну а если не имеют и лень добавлять в Interface процедуры установки свойст объектов, то пока хватит (ScGB2P as TRadioGroup) -> TRadioGroup(ScGB2P). Само собой, при смене версии Дельфи возможна несовместимость.


Гаврила   (2006-04-07 21:33:00) [2]


> В чем может быть дело ?

В том, что это на самом деле РАЗНЫЕ (с точки зрения системы) классы -
TRadioGroup в хосте и TRadioGroup в библиотеке.
Чтобы это был один класс - собирай и хост и библиотеку с пакетами,
или же вообще измени модель взаимодействия.
Мне кажется, спроектировано все не особо хорошо.
После внеднения такого кода потом концов не найдешь, почему все рухнуло


Amoeba   (2006-04-07 17:17:00) [3]

Почитай статьи про создание плагинов на http://www.delphikingdom.com


Sergey__   (2006-04-07 17:04:00) [4]

Опечатался :-) Правильно (ScGB1P as TRadioGroup).Visible := False;


MBo   (2006-04-07 16:49:00) [5]

плагин - BPL?


Palladin   (2006-04-07 16:48:00) [6]

P.S.: ...всегда задавался вопросом: причем тут знатоки... когда мастера...


Palladin   (2006-04-07 16:41:00) [7]


> ScGB2P


а какого типа эта переменная?


Наверх

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