Utilisation des interfaces de module
Remonter à Utilisation des fichiers et des éditeurs
Pour obtenir une interface de module, démarrez le service de module (IOTAModuleServices). Vous pouvez demander aux services de module tous les modules qui sont ouverts, rechercher un module à partir d'un nom de fichier ou de fiche ou ouvrir un fichier pour obtenir son interface de module.
Il existe différents types de modules correspondant aux différents types de fichiers : projets, ressources ou bibliothèques de types. Transtypez une interface de module vers une interface de module spécifique pour savoir si le module est de ce type. Par exemple, voici un moyen de déterminer l'interface du groupe de projets en cours :
{ Renvoie le groupe de projets en cours ou nil s'il n'y en a pas. } function CurrentProjectGroup: IOTAProjectGroup; var I: Integer; Svc: IOTAModuleServices; Module: IOTAModule; begin Supports(BorlandIDEServices, IOTAModuleServices, Svc); for I := 0 to Svc.ModuleCount - 1 do begin Module := Svc.Modules[I]; if Supports(Module, IOTAProjectGroup, Result) then Exit; end; Result := nil; end;
// Renvoie le groupe de projets en cours ou 0 s'il n'y en a pas. _di_IOTAProjectGroup __fastcall CurrentProjectGroup() { _di_IOTAModuleServices svc; BorlandIDEServices->Supports(svc); for (int i = 0; i < svc->ModuleCount; ++i) { _di_IOTAModule module = svc->Modules[i]; _di_IOTAProjectGroup group; if (module->Supports(group)) return group; } return 0; }