![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема доступа к методам и свойствам объектов главной программы [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
а какого типа эта переменная?