Sign in Join
Wiki copytemporary

Extending the IDE/ja

Deutsch · English · Español · Français · Slovenčina · Русский · 中文(中国) · 日本語

IDEを拡張する

概要

IDEはいくつかのプラグインをサポートしています。

コンポーネント
コンポーネントパレット上にアイコンとして現れます。と問えば、TButtonはボタンを作るのに使われます。

コンポーネントエディタ
コンポーネントエディタはコンポーネントを設計時にダブルクリックしたり、設計時にコンポーネント上で右クリックで表示されるポップアップメニューにいくつかの項目を追加するときに使われます。

プロパティエディタ
オブジェクトインスペクタの行で使われます。

エキスパート
その他の全てです。

Lazarusに独自のプラグインを追加するには、2つの方法があります。

  1. パッケージを書く方法, 自分でプラグインを書いて、そのユニットの'Register'手続きを使います。
  2. Lazarusのコードを拡張して、差分をlazarusのメーリングリストへ送る方法。

コンポーネントを作成する

ToDo Hint: Create a new component via the package editor.

コンポーネントエディタを作成する

ToDo Hint: see componenteditors.pas for examples

プロパティエディタを作成する

ToDo Hint: see propedits.pp for examples

イベントハンドラを登録する

IDEにはいくつかのイベントがあり、それに対してプラグインは独自のハンドラを追加することができます。propedits.pp で、"GlobalDesignHook"オブジェクトがあります。これは、設計時のイベントを管理します。各々のイベントはハンドラーのリストを呼び出します。デフォルトのハンドラーはIDEから追加されています。あなたは独自のハンドラを、AddHandlerXXXやRemoveHandlerXXX手続きを使って登録できます。それらは、デフォルトのハンドラの前に呼び出されます。

例:

text
 独自のハンドラを追加します。(通常、あなたが作成したオブジェクトのコンストラクタでおこないます。):
   GlobalDesignHook.AddHandlerComponentAdded(@YourOnComponentAdded);
text
 独自のハンドラを取り除きます:
   GlobalDesignHook.RemoveHandlerComponentAdded(@YourOnComponentAdded);
text
 すべてのハンドラを一度に削除することもできます。たとえば、次の行をオブジェクトのデストラクタに追加するのも良いでしょう。:
   GlobalDesignHook.RemoveAllHandlersForObject(Self);

GlobalDesignHookのハンドラです:

pascal
 // lookup root
 ChangeLookupRoot
   Called when the "LookupRoot" changed.
   The "LookupRoot" is the owner object of the currently selected components.
   Normally this is a TForm.
 // methods
 CreateMethod
 GetMethodName
 GetMethods
 MethodExists
 RenameMethod
 ShowMethod
   Called
 MethodFromAncestor
 ChainCall
 // components
 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.
 // persistent objects
 GetObject
 GetObjectName
 GetObjectNames
 // modifing
 Modified
 Revert
 RefreshPropertyValues

ソースのヘルプを追加する

THelpDatabaseを最初に作りましょう:

pascal
 HelpDB:=TFPDocHTMLHelpDatabase(
    HelpDatabases.CreateHelpDatabase('ANameOfYourChoiceForTheDatabase',
                                            TFPDocHTMLHelpDatabase,true));
 HelpDB.DefaultBaseURL:='http://your.help.org/';
pascal
 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);

最初の製作者と変更

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


From the Free Pascal wiki, page "Extending the IDE/ja", as it stood on 2008-01-06 after a change by Saeka-jp, 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.

Revision 4, last changed by WikiArchive .

Edited on wiki.freepascal.org by 1 person, 2006–2008

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
Saeka-jp
Saeka-jp
Saeka-jp
Saeka-jp概要
Saeka-jpイベントハンドラを登録する
Saeka-jpソースのヘルプを追加する

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.