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?

War es hilfreich?

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 werden

Dieser 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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top