Question

Je veux obtenir l'information sur la structure d'un module (unité pascals) par ToolsAPI. tout comme la vue de la structure de l'IDE fait.

Classes, enregistrements, Interfaces, variables / Constantes, etc. Membres, paramètres, etc.

Y at-il déjà un moyen facile et efficace pour obtenir ces métadonnées?

Était-ce utile?

La solution

Peut-être utilisez un n'est pas si mauvaise idée?

Autres conseils

AFAIK il n'y a aucun moyen de demander des informations structurées de spécial pour un fichier donné.

Ce que vous pouvez faire est d'accéder à l'information dans le volet Structure. De cette façon, exige que le fichier soit le module actif (peut être atteint par l'OTA), la sortie dépend des paramètres du volet Structure (Outils | Options ... -> Options d'environnement | Explorer) et si un nœud est un champ, un procédure ou quels que soient les besoins à déterminer sur l'indice d'image, parent ...

Ce code guide à travers le volet Structure.

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;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top