Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизВопрос по работе с Delphi Open Tools Api Найти похожие ветки
← →
Viking (2004-04-13 17:48) [0]Добрый день, господа!
У меня вопрос по использованию Delphi Open Tools Api.
По Delphi 5 следующий код вполне работает:
var
MI: TIModuleInterface;
FI: TIFormInterface;
CI: TIComponentInterface;
begin
if not Assigned(ToolServices) then
Exit;
MI:=ToolServices.GetModuleInterface(ListForms.Strings[SelectFormIndex]);
if not Assigned(MI) then
begin
ShowMessage("Форма должна быть загружена в Delphi: "+<Имя моей формы>);
Exit;
end;
FI:=MI.GetFormInterface;
if not Assigned(FI) then
begin
ShowMessage("Неопределен интерфейс формы: "+<Имя моей формы>);
Exit;
end;
CI:=FI.GetFormComponent;
if Assigned(CI) then
begin
//получить список компонент на форме...
end;
. . .
end;
а под Delhi 7 не хочет!
Получаю сообщение "Неопределен интерфейс формы..." на GetFormInterface.
В чем может быть дело?
Спасибо за внимание.
← →
Viking (2004-04-14 10:14) [1]Ещё раз, здраствуйте!
Видимо, поздно вечером задал вопрос...
Неужели никто не работает с Tools Api?
Подскажите, хоть где ещё информацию по нему найти?
← →
Юрий Зотов © (2004-04-14 13:16) [2]> Viking
Не пользуйтесь ToolServices, это уже давно считается моветоном. BolandIDEServices содержит всё, что нужно.
uses
..., ToolsAPI;
type
TEnumComponentProc = procedure(AComponent: TComponent);
procedure EnumComponents(Proc: TEnumComponentProc);
var
Module: IOTAModule;
FormEditor: IOTAFormEditor;
Root: INTAComponent;
i: integer;
begin
// 1. Получаем текущий модуль
Module := (BorlandIDEServices as IOTAModuleServices).CurrentModule;
// 2. Если он содержит форму, модуль данных или фрейм, то
// получаем ссылку на него и перечисляем компоненты
if (Module <> nil) and
(Module.CurrentEditor.QueryInterface(IOTAFormEditor, FormEditor) = S_OK) and
(FormEditor.GetRootComponent.QueryInterface(INTAComponent, Root) = S_OK) then
with Root.GetComponent do
for i := 0 to ComponentCount - 1 do
Proc(Components[i])
end;
← →
Viking (2004-04-14 15:41) [3]>Юрий Зотов
Спасибо большое!
Сейчас гляну...
А где ещё можно информацию про BolandIDEServices найти?
Имеется в виду - примеры использования.
Спасибо.
← →
Юрий Зотов © (2004-04-14 21:27) [4]1. ToolsAPI.pas.
2. Справка по OTAPI (начиная с D6).
3. Исходники готовых экспертов, коих множество.
4. Поисковые машины:
http://www.yandex.ru/yandsearch?rpt=rad&text=BorlandIDEServices
http://www.google.com/search?q=%42%6F%72%6C%61%6E%64%49%44%45%53%65%72%76%69%63%65%73&hl=ru
← →
Viking (2004-04-15 10:49) [5]>Юрий Зотов
:-)
Спасибо!
Я кое что и сам уже нашел
и применил.
Супер статьи
http://delphiplus.nagano.ru/articles/expert/toolsapi/
http://procoder.ru/articles/sys_prog/api_tools.shtml
Очень много полезной информации, рекомендую.
← →
Юрий Зотов © (2004-04-15 11:12) [6]> Viking (15.04.04 10:49) [5]
> Очень много полезной информации, рекомендую.
Благодарю, но поздно. Статьи и правда хорошие, спору нет (причем первая понравилась больше), но полезны они были бы мне лет эдак 8 назад, когда я только начинал писать эксперты. К огромному сожалению, тогда таких статей еще не было, а сейчас мне уже поздно их читать. Чукча, как известно - не читатель...
:о)
В этих статьях, в общем-то, изложены азы. Изложены и правда очень хорошо, но все равно это азы. И если хотите получить более продвинутую информацию - рекомендую подписаться на почтовую конференцию Borland по OTAPI.
← →
Viking (2004-04-15 11:40) [7]>Юрий Зотов
Я понимаю, что я наверное один такой неуч тут... :-)
Но ссылки может ещё кому пригодятся...
Маленький вопрос по поводу регистрации экспертов.
Если эксперт оформлен в виде DLL? то достаточно его прописать
в реестре:
Software\Borland\Delphi\5.0\Experts\<Моё имя>
для его появления в IDE Delphi?
А то из статей это не совсем очевидно...
Извиняюсь за элементарный вопрос... но что то я закопался, не могу поставить http://www.devrace.com/files/debug_xp.zip
(эксперт для отладки DLL в Delphi5 под XP)
:-(
← →
Юрий Зотов © (2004-04-15 12:13) [8]В общем, да, достаточно прописать в реестре (естественно, после этого IDE надо перезагрузить). И обратите внимание, что при этом регистрация идет только для той версии Delphi, которая указана в ветке (в данном случае - D5).
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c