Вставить текст в позицию курсора в Embarcadero Tools API
Я пишу расширение для IDE Embarcadero C++ Builder и хочу программно вставить текст в редактор кода в позиции курсора. Я искал файлы заголовков API инструментов, но нашел только интерфейс, который позволяет мне вставлять текст в начале редактора.
Есть ли какой-либо интерфейс или функция, которая позволяет мне вставлять текст в указанной позиции? И если да, можете ли вы дать мне пример кода?
Я пишу расширение на C++, но примеры кода на Delphi тоже подойдут.
1 ответ
Решение
Из этого документа Бруно Фиренса, расширяющего Delphi IDE:
var
EditorServices: IOTAEditorServices;
EditView: IOTAEditView;
copyright: string;
begin
copyright := '{ Copyright © 2011 by tmssoftware.com }';
EditorServices := BorlandIDEServices as IOTAEditorServices;
EditView := EditorServices.TopView;
if Assigned(EditView) then
begin
// position cursor at 1,1
EditView.Buffer.EditPosition.Move(1,1);
// insert copyright notice on top
EditView.Buffer.EditPosition.InsertText(copyright);
end;
end;
С помощью EditView.Buffer.EditPosition.Move()
Вы должны иметь возможность свободно перемещать курсор в любое место.