Extending the IDE/sk
Rozširovanie IDE
Úvod
IDE podporuje niekoľko typov pluginov:
- Komponenty
- Sú to položky Palety komponentov. Napríklad TButton môžete použiť na vytváranie tlačítiek.
- Editory komponentov
- Tieto sú použité pri dvojkliku na komponent v návrhu alebo pridaním niektorých ďalších položiek do kontextového menu návrhu, ktoré vyvoláte pravým kliknutím na komponent.
- Editory vlastností
- Tieto sú použité riadkymi v Object Inspectore.
- Experti
- Toto sú všetky ostatné typy.
Máte dve možnosti ako pridať svoj vlastný plugin do IDE Lazarus:
- Napíšte balíček, nainštalujte ho a registrujte svoj plugin v procedúre 'Register' jednotky.
- Rozšírte kód Lazarus a pošlite svoj CVS rozdiely do maillistu Lazarus.
Písanie komponentov
Vytvorte nový komponent pomocou Editora balíčkov.
Písanie editorov komponentov
Viz príklady v componenteditors.pas
Písanie editorov vlastností
Viz príklady v propedits.pp
Registrovanie obslúh udalostí
V IDE je niekoľko udalostí, pre ktoré môže plugin pridať svoju vlastnú obsluhu. V súbore propedits.pp sa nachádza objekt GlobalDesignHook", ktorý obsluhuje neikoľko udalostí pre navrhovanie. Každá udalosť volá zoznam obslúh. Predvolené obsluhy sú pridané samotným IDE. Svoje vlastné obsluhy môžete pridať pomocou metód AddHandlerXXX a RemoveHandlerXXX. Tieto budú volané pred predvolenými obsluhami.
Príklady:
Pridanie svojej obsluhy (toto by mal vykonať konštruktor vášho objektu): GlobalDesignHook.AddHandlerComponentAdded(@YourOnComponentAdded); Odstránenie vašej obsluhy: GlobalDesignHook.RemoveHandlerComponentAdded(@YourOnComponentAdded); Môžete odstrániť všetky obsluhy naraz. Napríklad, je vhodé pridať do deštruktora objektu tentor riadok: GlobalDesignHook.RemoveAllHandlersForObject(Self);
Obsluhy GlobalDesignHook:
// lookup root ChangeLookupRoot Je volaná pri zmene "LookupRoot". "LookupRoot" je vlastník objektu aktuálne vybratého komponentu. Zvyčajne to je TForm. // methods CreateMethod GetMethodName GetMethods MethodExists RenameMethod ShowMethod MethodFromAncestor ChainCall // components GetComponent GetComponentName GetComponentNames GetRootClassName ComponentRenamed Volaná pri premenovaní komponentu ComponentAdded Volaná pri priradní komponentu do LookupRoot ComponentDeleting VOlaná pred uvoľnením komponentu. DeleteComponent VOlaná pri odstráenní komponentu pomocou IDE. GetSelectedComponents Vracia aktuálny výber komponentov. // persistent objects GetObject GetObjectName GetObjectNames // modifing Modified Revert RefreshPropertyValues
Spolupracovníci a zmeny
This page has been converted from the epikwiki version.
This document was authored by Mattias Gaertner Initial import and formatted for Lazarus-CCR - VlxAdmin 9/26/2003
- Prvotný preklad - Slavko 02:24, 26 Mar 2005 (PST)