Gibt es eine Möglichkeit mittels der IOTA-Services die exakte Position (in Pixel auf dem Screen) des ersten Chars des Quellcodes (also quasi der in Columne 1) festzustellen? Bzw. die Breite festzustellen, zwischen dem linken Rand des Editors und dem ersten Char im Editor.
Ja, der Bereich nennt sich "Gutter".
Delphi-Quellcode:
function GetEditorServices: IOTAEditorServices;
begin
Result := BorlandIDEServices as IOTAEditorServices;
Assert(Assigned(Result));
end;
function GetTopMostEditView: IOTAEditView;
begin
Result := GetEditorServices.TopView;
end;
function GetEditor: TWinControl;
var
view: IOTAEditView;
begin
view := GetTopMostEditView;
Result := TWinControl(view.GetEditWindow.Form.FindComponent('Editor'));
end;
function GetGutterWidth: Integer;
var
editor: TWinControl;
ctx: TRttiContext;
begin
editor := GetEditor;
Result := ctx.GetType(editor.ClassType).GetProperty('LeftGutter').GetValue(editor).AsInteger;
end;