Текущий архив: 2011.11.20;
Скачать: CL | DM;
Вниз
Как писать плагин к Delphi? для чайников Найти похожие ветки
← →
fzt (2011-07-25 16:52) [0]Привет Коллеги.
Delphi 7. Использую CnPack.
Судя по его работе - окном редактора кода он управляет (раскраска ведь есть).
Перерыл гору тулз для среды, того что мне нужно нет (не спрашивайте что нужно, для этого я заводил отдельные темы, там и ответите. Линки в конце).
Взываю, откликнетесь духи онлайна:
1) Получить содержимое строки редактора кода IDE. И положение каретки текстовой в этом коде.
Как?
2) Получить список *.pas модулей проекта. Где такое искать?
Not) Решения посредством API форточек не предлагать, это на крайний случай.
Epic Win) Если кто-то поделится инфой - "Как писать плагин к Delphi для чайников", я прям обрадуюсь.
Сорцы CnPack`a я смотрел, вывих мозга. Нужно тренироваться на кошках.
Ссылочки, чтобы было понятно "а нафига?": [B]А ссылочки всё-же прочитай, прежде чем ответить.[/B]
http://delphimaster.net/view/15-1311210934/
http://delphikingdom.com/asp/answer.asp?IDAnswer=79921
← →
Юрий Зотов © (2011-07-25 17:10) [1]На эту тему информации мало, но кое-что есть.
1. Исходники модуля ToolsAPI.
2. Хелп от D6 (именно от D6 и только от D6).
3. Исходники многочисленных экспертов IDE в сети.
==============================================
1) Получить содержимое строки редактора кода IDE. И положение каретки текстовой в этом коде.
2) Получить список *.pas модулей проекта.
=============================================
Общая идея такая - нам доступна глобальная переменная BorlandIDEServices. Она реализует все интерфейсы, описанные в модуле ToolsAPI. Конкретный интерфейс получаем через AS, например:BorlandIDEServices as IOTAModuleServices
Получив нужный интерфейс, можем пользоваться им как угодно. А как именно - смотрим по исходникам ToolsAPI.
=============================================
> вывих мозга
Не то чтоб совсем вывих, но уж точно не детский сад.
← →
Юрий Зотов © (2011-07-25 17:14) [2]> "Как писать плагин к Delphi для чайников"
Сильно сомневаюсь, что подобная инфа вообще есть. Потому что писать плагины к Delphi - это занятие уже само по себе не для чайников.
← →
Игорь Шевченко © (2011-07-25 17:20) [3]
> Как писать плагин к Delphi? для чайников
http://www.gexperts.org
← →
Юрий Зотов © (2011-07-25 22:19) [4]Вот в качестве примера - получение всех файлов текущего проекта. На форме TProjectUnitsForm лежит Memo ProjectUnitsMemo.
Код рабочий, проверен в Delphi 7, надо только куда-то прилепить вызов этой формы (например, написать эксперт, создающий собственный пункт меню IDE и прилепить на его OnClick).
function FindInterface(AInterface: TGUID): IUnknown;
var
i: integer;
begin
Result := nil;
with BorlandIDEServices as IOTAModuleServices do
for i := 0 to ModuleCount - 1 do
if Modules[i].QueryInterface(AInterface, Result) = S_OK then
Break
end;
function GetCurrentProjectGroup: IOTAProjectGroup;
begin
Result := FindInterface(IOTAProjectGroup) as IOTAProjectGroup
end;
function GetCurrentProject: IOTAProject;
var
ProjectGroup: IOTAProjectGroup;
begin
ProjectGroup := GetCurrentProjectGroup;
if Assigned(ProjectGroup) then
Result := ProjectGroup.ActiveProject
else
Result := FindInterface(IOTAProject) as IOTAProject
end;
procedure TProjectUnitsForm.ShowProjectUnits;
var
CurrentProject: IOTAProject;
ModuleInfo: IOTAModuleInfo;
i: integer;
begin
ProjectUnitsMemo.Lines.BeginUpdate;
try
ProjectUnitsMemo.Clear;
CurrentProject := GetCurrentProject;
if not Assigned(CurrentProject) then
Exit;
for i := 0 to CurrentProject.GetModuleCount - 1 do
begin
ModuleInfo := CurrentProject.GetModule(i);
ProjectUnitsMemo.Lines.Add(ModuleInfo.Name + " : " + ModuleInfo.FileName)
end
finally
ProjectUnitsMemo.Lines.EndUpdate
end
end;
← →
Германн © (2011-07-26 01:08) [5]
> Как писать плагин к Delphi? для чайников
Извините, но "Не по Сеньке шапка".
Сама Дельфи как RAD инструмент - именно для чайников. Но это только потому, что разрабатывали Дельфи отнюдь не чайники!
А для чайника - плагин к Дельфи именно вывих мозга!
P.S.
Тут только может повезти, что ЮЗ офигевший от "язвы" и иже с ними может помочь. Но я за это не ручаюсь! :)
← →
fzt (2011-07-26 04:02) [6]2 Юрий Зотов, пасиба, ознакомился. Помогло! =). После работы обязательно покопаюсь, благодарю за наводки.
2 Германн, выбора нет. Отсутствие окна "Code definition" из VS, похоже на ампутацию кусочка межушного нервного узла. ИКР было бы конечно ничего самому не писать, но мной прецендентов решения задачи не обнаружено.
Страницы: 1 вся ветка
Текущий архив: 2011.11.20;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.009 c