Extending the IDE/fr: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | 1 | # Étendre l'IDE | |
| 2 | 2 | ||
| 3 | 3 | ## Vue d'ensemble | |
| 4 | 4 | ||
| 5 | 5 | L'IDE supporte plusieurs types de plugins : | |
| 6 | 6 | ||
| 7 | 7 | Composants | |
| 8 | 8 | Ce sont les éléments de la palette des composants. Par exemple, TButton peut être employé pour créer des boutons. | |
| 9 | 9 | ||
| 10 | 10 | Éditeurs de composants | |
| 11 | 11 | Les éditeurs de composants sont employés quand on double-clique sur un composant dans le concepteur. Ils peuvent aussi servir à ajouter un élément au menu surgissant du concepteur quand on clique sur un composant avec le bouton droit de la souris. | |
| 12 | 12 | ||
| 13 | 13 | Éditeurs de propriétés | |
| 14 | 14 | Ceux-ci sont utilisés par chaque ligne de l'inspecteur d'objet afin de pouvoir établir ou modifier la valeur d'une propriété du composant sélectionné. | |
| 15 | 15 | ||
| 16 | 16 | Experts | |
| 17 | 17 | Ceux-ci représentent tous les autres types. Ils comprennent les nouveaux éléments d'un menu, les combinaisons de touches pour les raccourcis, ou encore de nouvelles fonctionnalités pour l'IDE. | |
| 18 | 18 | ||
| 19 | 19 | Il y a deux possibilités pour ajouter vos propres plugins à Lazarus : | |
| 20 | 20 | ||
| 21 | 21 | 1. écrire un paquet, l'installer et enregistrer les plugins dans la procédure «register» d'une unité ; | |
| 22 | 22 | 2. étendre le code de Lazarus, et envoyer le fichier diff CVS(Concurrent Versions System) à la liste de courriel de Lazarus. | |
| 23 | 23 | ||
| 24 | 24 | ## Écrire des Composants | |
| 25 | 25 | ||
| 26 | 26 | ToDo Conseil: Créer un nouveau composant par l'intermédiaire de l'éditeur de paquet. | |
| 27 | 27 | ||
| 28 | 28 | ## Écrire un éditeurs de composant | |
| 29 | 29 | ||
| 30 | 30 | ToDo Conseil: voir le fichier componenteditors.pas pour des exemples | |
| 31 | 31 | ||
| 32 | 32 | ## Écrire un éditeurs de propriété | |
| 33 | 33 | ||
| 34 | 34 | ToDo Conseil: voir le fichier propedits.pp pour des exemples | |
| 35 | 35 | ||
| 36 | 36 | ## Traiter les registres d'événement | |
| 37 | 37 | ||
| 38 | 38 | 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 traitements par défaut sont ajoutés par l'IDE. Vous pouvez ajouter vos propres traitements avec les méthodes AddHandlerXXX et RemoveHandlerXXX. Ils s'appelleront avant les traitements par défaut. | |
| 39 | 39 | ||
| 40 | 40 | Exemples : | |
| 41 | 41 | ||
| 42 | - | ||
| 43 | - | ||
| 44 | - | ||
| 45 | - | ||
| 46 | - | ||
| 47 | - | ||
| 48 | - | ||
| 42 | + | ```text | |
| 43 | + | Ajoutez votre traitement (ceci est normalement fait dans le constructeur de votre objet): | |
| 44 | + | GlobalDesignHook.AddHandlerComponentAdded(@YourOnComponentAdded); | |
| 45 | + | Enlevez votre traitement : | |
| 46 | + | GlobalDesignHook.RemoveHandlerComponentAdded(@YourOnComponentAdded); | |
| 47 | + | Vous pouvez enlever tous les traitements immédiatement. | |
| 48 | + | Par exemple, c'est une bonne idée d'ajouter cette ligne dans le destructeur de l'objet : | |
| 49 | + | GlobalDesignHook.RemoveAllHandlersForObject(Self); | |
| 50 | + | ``` | |
| 49 | 51 | ||
| 50 | 52 | Les traitements de GlobalDesignHook : | |
| 51 | 53 | ||
| 52 | - | ||
| 53 | - | ||
| 54 | - | ||
| 55 | - | ||
| 56 | - | ||
| 57 | - | ||
| 58 | - | ||
| 59 | - | ||
| 60 | - | ||
| 61 | - | ||
| 62 | - | ||
| 63 | - | ||
| 64 | - | ||
| 65 | - | ||
| 66 | - | ||
| 67 | - | ||
| 68 | - | ||
| 69 | - | ||
| 70 | - | ||
| 71 | - | ||
| 72 | - | ||
| 73 | - | ||
| 74 | - | ||
| 75 | - | ||
| 76 | - | ||
| 77 | - | ||
| 78 | - | ||
| 79 | - | ||
| 80 | - | ||
| 81 | - | ||
| 82 | - | ||
| 83 | - | ||
| 84 | - | ||
| 85 | - | ||
| 86 | - | ||
| 87 | - | ||
| 88 | - | ||
| 89 | - | ||
| 54 | + | ```text | |
| 55 | + | // racine de consultation | |
| 56 | + | ChangeLookupRoot | |
| 57 | + | Appelé quand le "LookupRoot" a changé. | |
| 58 | + | Le "LookupRoot" est l'objet du propriétaire des composants actuellement choisis. | |
| 59 | + | Normalement c'est un TForm. | |
| 60 | + | // méthodes | |
| 61 | + | CreateMethod | |
| 62 | + | GetMethodName | |
| 63 | + | GetMethods | |
| 64 | + | MethodExists | |
| 65 | + | RenameMethod | |
| 66 | + | ShowMethod | |
| 67 | + | Called | |
| 68 | + | MethodFromAncestor | |
| 69 | + | ChainCall | |
| 70 | + | // composants | |
| 71 | + | GetComponent | |
| 72 | + | GetComponentName | |
| 73 | + | GetComponentNames | |
| 74 | + | GetRootClassName | |
| 75 | + | ComponentRenamed | |
| 76 | + | Appelé quand un composant a été renommé. | |
| 77 | + | ComponentAdded | |
| 78 | + | Appelé quand un nouveau composant a été ajouté au LookupRoot | |
| 79 | + | ComponentDeleting | |
| 80 | + | Appelé avant qu'un composant soit libéré. | |
| 81 | + | DeleteComponent | |
| 82 | + | Appelé par l'IDE pour supprimer un composant. | |
| 83 | + | GetSelectedComponents | |
| 84 | + | Obtenir le choix courant des composants. | |
| 85 | + | // objets persistants | |
| 86 | + | GetObject | |
| 87 | + | GetObjectName | |
| 88 | + | GetObjectNames | |
| 89 | + | // modifing | |
| 90 | + | Modified | |
| 91 | + | Revert | |
| 92 | + | RefreshPropertyValues | |
| 93 | + | ``` | |
| 90 | 94 | ||
| 91 | 95 | ## Ajouter de l'aide pour des sources | |
| 92 | 96 | ||
| 93 | 97 | Créer d'abord un THelpDatabase : | |
| 94 | 98 | ||
| 95 | - | ||
| 96 | - | ||
| 97 | - | ||
| 98 | - | ||
| 99 | + | ``` pascal | |
| 100 | + | HelpDB:=TFPDocHTMLHelpDatabase( | |
| 101 | + | HelpDatabases.CreateHelpDatabase('ANameOfYourChoiceForTheDatabase', | |
| 102 | + | TFPDocHTMLHelpDatabase,true)); | |
| 103 | + | HelpDB.DefaultBaseURL:='http://your.help.org/'; | |
| 104 | + | ``` | |
| 99 | 105 | ||
| 100 | - | ||
| 101 | - | ||
| 102 | - | ||
| 103 | - | ||
| 104 | - | ||
| 105 | - | ||
| 106 | - | ||
| 106 | + | ``` pascal | |
| 107 | + | FPDocNode:=THelpNode.CreateURL(HelpDB, | |
| 108 | + | 'Package1 - A new package', | |
| 109 | + | 'file://index.html'); | |
| 110 | + | HelpDB.TOCNode:=THelpNode.Create(HelpDB,FPDocNode);// once as TOC | |
| 111 | + | DirectoryItem:=THelpDBISourceDirectory.Create(FPDocNode,'$(PkgDir)/lcl', | |
| 112 | + | '*.pp;*.pas',false);// and once as normal page | |
| 113 | + | HelpDB.RegisterItem(DirectoryItem); | |
| 114 | + | ``` | |
| 107 | 115 | ||
| 108 | 116 | --- | |
| 109 | 117 | *From the Free Pascal wiki, page "Extending the IDE/fr", as it stood on 2017-11-26 after a change by Gillou58, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* | |
| 110 | 118 | Category: Français |
