Comment obtenir la structure d'un module par ToolsAPI dans Delphi?
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?
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;