Extending the IDE/de: Difference between revisions
Line 39: | Line 39: | ||
== Register event handlers == | == Register event handlers == | ||
Es gibt etliche Events in der Ide, für die Plugins ihre eigenen Handles setzen können. | |||
In propedits.pp gibt es ein "GlobalDesignHook"-Objekt, welches etliche Events für die Entwicklung beibehält. Jedes Event ruft eine Liste von Handles auf. Die Standardhandles werden von der IDE hinzugefügt. Du kannst deine eigenen Handles mit ADDHandlerXXX und | |||
RemoveHandlerXXX-Methoden hinzufügen. Sie werden vor den Standarthandlers aufgerufen. | |||
Beispiele: | Beispiele: | ||
Line 51: | Line 53: | ||
GlobalDesignHook.RemoveAllHandlersForObject(Self); | GlobalDesignHook.RemoveAllHandlersForObject(Self); | ||
Die Handlers des GlobalDesignHook: | |||
// lookup root | // lookup root | ||
Line 91: | Line 93: | ||
Revert | Revert | ||
RefreshPropertyValues | RefreshPropertyValues | ||
== Hilfe für die Quellen hinzufügen == | == Hilfe für die Quellen hinzufügen == |
Revision as of 19:52, 31 August 2007
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
日本語 (ja) │
русский (ru) │
slovenčina (sk) │
中文(中国大陆) (zh_CN) │
Erweitern der IDE
Einleitung
Die IDE unterstützt verschiedene Erweiterungen:
- Komponenten
- Komponenten werden in der Palette installiert. Z.B. TButton erzeugt Buttons.
- Komponenten-Editoren
- Komponenteneditoren werden benutzt wenn sie auf eine Komponente im Designer doppelklicken oder um einige extra Items im Popupmenü des Designers hinzuzufügen,
wenn man rechts auf eine Komponente klickt.
- Eigenschafts-Editoren
- Stellen die Editierfähigkeiten im Objekt-Inspektor zur Verfügung.
- Experten
- Alle anderen Typen von Editoren.
Es gibt 2 Möglichkeiten, Plugins in Lazarus zu integrieren:
- Erstellen eines Packages, installiert und registriert werden diese mit der Prozedur 'Register' in einer Unit.
- Erweitere den Lazarus Code und sende Dein diff an die lazarus mailing list.
Komponenten schreiben
ToDo Hinweis: Erzeugen einer neuen Komponente mit dem Package Editor.
Komponenten-Editoren schreiben
ToDo Hinweis: siehe componenteditors.pas für Beispiele
Eigenschafts-Editoren schreiben
ToDo Hinweis: siehe propedits.pp für Beispiele
Register event handlers
Es gibt etliche Events in der Ide, für die Plugins ihre eigenen Handles setzen können. In propedits.pp gibt es ein "GlobalDesignHook"-Objekt, welches etliche Events für die Entwicklung beibehält. Jedes Event ruft eine Liste von Handles auf. Die Standardhandles werden von der IDE hinzugefügt. Du kannst deine eigenen Handles mit ADDHandlerXXX und RemoveHandlerXXX-Methoden hinzufügen. Sie werden vor den Standarthandlers aufgerufen.
Beispiele:
Adding your handler (this is normally done in the constructor of your object): GlobalDesignHook.AddHandlerComponentAdded(@YourOnComponentAdded);
Removing your handler: GlobalDesignHook.RemoveHandlerComponentAdded(@YourOnComponentAdded);
You can remove all handlers at once. For example, it is a good idea to add this line in the destructor of object: GlobalDesignHook.RemoveAllHandlersForObject(Self);
Die Handlers des GlobalDesignHook:
// lookup root ChangeLookupRoot Called when the "LookupRoot" changed. The "LookupRoot" is the owner object of the currently selected components. Normally this is a TForm.
// Methoden CreateMethod GetMethodName GetMethods MethodExists RenameMethod ShowMethod Called MethodFromAncestor ChainCall
// Komponenten GetComponent GetComponentName GetComponentNames GetRootClassName ComponentRenamed Called when a component was renamed ComponentAdded Called when a new component was added to the LookupRoot ComponentDeleting Called before a component is freed. DeleteComponent Called by the IDE to delete a component. GetSelectedComponents Get the current selection of components.
// persistente Objekte GetObject GetObjectName GetObjectNames
// modifing Modified Revert RefreshPropertyValues
Hilfe für die Quellen hinzufügen
Erzeugen sie zuerst eine THelpDatabase: <delphi>
HelpDB:=TFPDocHTMLHelpDatabase( HelpDatabases.CreateHelpDatabase('EinNameIhrerWahlFürDieDatenbank', TFPDocHTMLHelpDatabase,true)); HelpDB.DefaultBaseURL:='http://ihre.hilfe.org/';
FPDocNode:=THelpNode.CreateURL(HelpDB, 'Package1 - A new package', 'file://index.html'); HelpDB.TOCNode:=THelpNode.Create(HelpDB,FPDocNode);// einmal als Inhaltsverzeichnis DirectoryItem:=THelpDBISourceDirectory.Create(FPDocNode,'$(PkgDir)/lcl', '*.pp;*.pas',false);// und einmal als normale Seite HelpDB.RegisterItem(DirectoryItem);
</delphi>
Originale Mitwirkende und Änderungen
Diese Seite wurde von der epikwiki Version konvertiert.
This document was authored by Mattias Gaertner Initial import and formatted for Lazarus-CCR - VlxAdmin 9/26/2003