Wie die Struktur eines Moduls durch ToolsAPI in Delphi zu bekommen?
Frage
Ich möchte die Strukturinformationen eines Moduls (pascal Einheit) erhalten, indem ToolsAPI. ebenso wie die Strukturansicht der IDE tut.
Klassen, Platten, Schnittstellen, Variablen / Konstanten, usw. Mitglieder, Parameter, etc.
Gibt es bereits eine einfache und effiziente Möglichkeit, diese Metadaten zu bekommen?
Lösung
Vielleicht mit einem Parsern ist nicht so schlechte Idee?
Andere Tipps
AFAIK gibt es keine Möglichkeit zur Abfrage speziellen strukturierten Informationen für eine bestimmte Datei.
Was Sie tun können, ist die Information in der Strukturansicht zu gelangen. Auf diese Weise die Datei erfordert das aktive Modul zu sein (kann durch den OTA erreicht werden), hängt die Ausgabe auf Strukturfenster Einstellungen (Extras | Optionen ... -> Umgebungsoptionen | Explorer), und wenn ein Knoten ist ein Feld, ein Bedürfnisse Verfahren oder was auch immer auf dem Bild Index, Eltern ...
bestimmt werdenDieser Code geht durch die Strukturansicht.
procedure StructureViewToSL(ASL: TStringList);
procedure TreeToSL(ANode: IOTAStructureNode; ASL: TStringList; const APrefix: string);
var
I: Integer;
begin
ASL.Add(APrefix + ANode.Caption);
for I := 0 to ANode.ChildCount - 1 do
TreeToSL(ANode.Child[I], ASL, APrefix + ' ');
end;
var
StructureView: IOTAStructureView;
StructureContext: IOTAStructureContext;
Node: IOTAStructureNode;
I: Integer;
begin
StructureView := BorlandIDEServices as IOTAStructureView;
StructureContext := StructureView.GetStructureContext;
for I := 0 to StructureContext.RootNodeCount - 1 do
begin
Node := StructureContext.GetRootStructureNode(I);
TreeToSL(Node, ASL, '');
end;
end;