Utilisation des interfaces d'éditeur

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation des fichiers et des éditeurs


Chaque module dispose d'au moins une interface d'éditeur. Certains modules ont plusieurs éditeurs, tels qu'un fichier source (.pas) et un fichier description de fiche (.dfm). Comme tous les éditeurs implémentent l'interface IOTAEditor ; transtypez l'éditeur vers un type spécifique pour savoir quel est le type de l'éditeur. Par exemple, le code suivant permet d'obtenir l'interface de l'éditeur de fiche d'une unité :

{ Renvoie l'éditeur de fiche d'un module ou nil si l'unité n'a pas de fiche. }
function GetFormEditor(Module: IOTAModule): IOTAFormEditor;
var
  I: Integer;
  Editor: IOTAEditor;
begin
  for I := 0 to Module.ModuleFileCount - 1 do
  begin
    Editor := Module.ModuleFileEditors[I];
    if Supports(Editor, IOTAFormEditor, Result) then
      Exit;
  end;
  Result := nil;
end;
// Renvoie l'éditeur de fiche d'un module ou 0 si l'unité n'a pas de fiche.
_di_IOTAFormEditor __fastcall GetFormEditor(_di_IOTAModule module)
{
for (int i = 0; i < module->ModuleFileCount; ++i)
{
_di_IOTAEditor editor = module->ModuleFileEditors[i];
_di_IOTAFormEditor formEditor;
if (editor->Supports(formEditor))
return formEditor;
}
return 0;
}

Les interfaces d'éditeur donnent accès à l'état interne de l'éditeur. Vous pouvez examiner le code source ou les composants que l'utilisateur est en train de modifier, modifier le code source, les composants ou les propriétés, changer la sélection dans les éditeurs de code source ou de fiche ou effectuer presque toute opération d'édition que l'utilisateur final peut mettre en oeuvre.

En utilisant une interface d'éditeur de fiche, un expert peut accéder à tous les composants d'une fiche. Chaque composant, y compris la fiche racine ou le module de données, a une interface IOTAComponent associée. Un expert peut examiner ou modifier la plupart des propriétés des composants. Si vous avez besoin d'un contrôle complet du composant, vous pouvez transtyper l'interface IOTAComponent vers INTAComponent. L'interface de composant natif donne à l'expert un accès direct au pointeur TComponent. Cela est important si vous avez besoin de lire ou de modifier une propriété de type classe, comme TFont, ce qui ne peut se faire que via des interfaces de style NTA.

Voir aussi