Extending the IDE/fr

From Free Pascal wiki
Jump to navigationJump to search

Template:Étendre l'IDE

Étendre l'IDE

Vue d'ensemble

L'IDE soutient plusieurs types de plugins:

Composants
Ce sont les items dans la palette composante. Pour un exemple TButton peut être employé pour créer des boutons.
Éditeurs de composants
Les éditeurs de composants sont employés quand vous double cliquez sur un composant dans le concepteur ou pour ajouter quelques items supplémentaires au menu automatique du concepteur, quand vous cliquez sur un composant.
Éditeurs de propriété
Ceux-ci sont employés par les rangées dans l'inspecteur d'objet.
Experts
Ce sont tous les autres types.


Il y a deux possibilités pour ajouter vos propres plugins à Lazarus:

  1. Écrire un paquet, l'installer et enregistrer vos plugins dans la procédure «registre» d'une unité.
  2. Prolonger le code de Lazarus, et envoyer votre fichier diff à partir de la version CVS à la mailing liste de Lazarus.

Écrire un Composants

ToDo Conseil: Créer un nouveau composant par l'intermédiaire de l'éditeur de paquet.

Écrire un éditeurs de composant

ToDo Conseil: voir le fichier componenteditors.pas pour des exemples

Écrire un éditeurs de propriété

ToDo Conseil: voir le fichier propedits.pp pour des exemples

Traiter les registre d'évènement

Il y a plusieurs évènements dans l'IDE, pour quelles plugins peuvent ajouter leurs propres traitement. Dans propedits.pp il y a un objet "GlobalDesignHook", qui maintient plusieurs évènements de conception. Chaque évènement appelle une liste de traitement. Les traitement par défaut sont ajoutés par l'ide. Vous pouvez ajouter vos propres traitement avec les méthodes AddHandlerXXX et RemoveHandlerXXX. Ils s'appelleront avant les traitements par défaut.

Exemples:

 Ajouter votre traitement (ceci est normalement fait dans le constructeur de votre objet):
   GlobalDesignHook.AddHandlerComponentAdded(@YourOnComponentAdded);
Enlever votre traitement: GlobalDesignHook.RemoveHandlerComponentAdded(@YourOnComponentAdded);
Vous pouvez enlever tous les traitements immédiatement. Par exemple, c'est une bonne idée d'ajouter cette ligne dans le destructeur de l'objet: GlobalDesignHook.RemoveAllHandlersForObject(Self);

Les traitements de GlobalDesignHook :

 // racine de consultation 
 ChangeLookupRoot
   Appelé quand le "LookupRoot" a changé. 
   Le "LookupRoot" est l'objet du propriétaire des composants actuellement choisis. 
   Normalement c'est un TForm. 
// méthodes CreateMethod GetMethodName GetMethods MethodExists RenameMethod ShowMethod Called MethodFromAncestor ChainCall
// composants GetComponent GetComponentName GetComponentNames GetRootClassName ComponentRenamed Appelé quand un composant a été renommé ComponentAdded Appelé quand un nouveau composant a été ajouté au LookupRoot ComponentDeleting Appelé avant q'un composant soit libéré. DeleteComponent Appelé par l'IDE pour supprimer un composant. GetSelectedComponents Obtenir le choix courant des composants.
// objets persistants GetObject GetObjectName GetObjectNames
// modifing Modified Revert RefreshPropertyValues

Ajouter de l'aide pour des sources

Créer d'abord un THelpDatabase :

 HelpDB:=TFPDocHTMLHelpDatabase(
    HelpDatabases.CreateHelpDatabase('ANameOfYourChoiceForTheDatabase',
                                            TFPDocHTMLHelpDatabase,true));
 HelpDB.DefaultBaseURL:='http://your.help.org/';
 FPDocNode:=THelpNode.CreateURL(HelpDB,
                  'Package1 - A new package',
                  'file://index.html');
 HelpDB.TOCNode:=THelpNode.Create(HelpDB,FPDocNode);// once as TOC
 DirectoryItem:=THelpDBISourceDirectory.Create(FPDocNode,'$(PkgDir)/lcl',
                                 '*.pp;*.pas',false);// and once as normal page
 HelpDB.RegisterItem(DirectoryItem);

Contribuant et changements originaux

Cette page a été convertie de l'epikwiki version.

Ce document a été écrit par Mattias Gaertner Importation initiale et composé pour Lazarre-CCR - VlxAdmin 9/26/2003