Eine
Unit kann mehrfach geöffnet sein. Dann gibt es auch mehrere EditViews.
Also, du fängst an mit
IOTAModuleServices und holst dir über
OpenModule das
IOTAModule (geht auch, wenn schon offen). Dann iterierst du über
ModuleFileEditors und prüfst ob der jeweilige
IOTAEditor auch
IOTASourceEditor unterstützt.
IOTASourceEditor liefert dir dann die
EditViews.
An den Sourcecode kommst du aber auch ohne den EditView über
IOTASourceEditor.CreateReader. Mit
IOTASourceEditor.Show kannst du einen EditView erzeugen. Der ist dann aber auch sichtbar.
Delphi-Quellcode:
var
Editor: IOTAEditor;
EditView: IOTAEditView;
I, J: Integer;
module: IOTAModule;
sourceEditor: IOTASourceEditor;
OTAModuleServices: IOTAModuleServices;
begin
BorlandIDEServices.GetService(IOTAModuleServices, OTAModuleServices);
module := OTAModuleServices.OpenModule(AFileName);
for I := 0 to module.ModuleFileCount - 1 do begin
Editor := module.ModuleFileEditors[I];
if Supports(Editor, IOTASourceEditor, sourceEditor) then begin
if sourceEditor.EditViewCount = 0 then begin
sourceEditor.Show; // damit ein EditView existiert
end;
for J := 0 to sourceEditor.EditViewCount - 1 do begin
EditView := sourceEditor.EditView[J];
// ...
end;
end;
end;
end;