既存のフォームのコンポーネントを変更するには、それが実際に IDE が設計時にインスタンスを作成できるコンポーネントである必要があります。もちろん、これはIDEが最初にそれを認識しなければならないことを意味します。
これを行う方法は、独自の子孫コンポーネントを作成し、実際に設計時パッケージで IDE にインストールすることです。その後、標準バージョンの代わりにフォームにドロップするか、既存のフォームに少し作業を加えて置き換えることができます。(ただし、最初にバージョンを作成してインストールする必要があります。)
File->New->Package (Delphi)
IDE のメニューから開始します。他のプロジェクトと同じようにパッケージを保存します (たとえば、MyComponents.dpk
)。
を使用して、右側のペインFile->New->Other->Delphi Files
をダブルクリックします。Component
ウィザードが開始され、New Component
派生元にする (または新しいコンポーネントを設計する) 既存のコンポーネントを選択できます。
ウィザードの手順に従うと、コンポーネントの基本的なシェルが完成します。
unit MyToolBar1;
interface
uses
System.SysUtils, System.Classes, Vcl.Controls, Vcl.ToolWin, Vcl.ComCtrls;
type
TMyToolBar = class(TToolBar)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TMyToolBar]);
end;
end.
新しい子孫に必要な機能を実装し、ファイルを保存します。
Project Manager
(デフォルトでは IDE の右上のウィンドウ) でパッケージを右クリックしInstall
、コンテキスト メニューから選択します。これにより、パッケージがコンパイルおよびビルドされ、IDE に自動的にインストールされます。(私が示した例Samples
では、呼び出しで示されている内容に基づいて、パレットのページに新しいコンポーネントを配置しRegisterComponents
ます。)
上記を行った後、既存のフォームを変更できます (最初に .pas および .dfm ファイルのバックアップを作成してください! )。TToolBar
あなたが言及したものと、以下の手順でシェルを投稿したサンプル置換を使用します。
ソース コード エディタでクラス名を手動で からTToolBar
に変更しTMyToolBar
ます。
フォームを右クリックしView as Text
、コンテキスト メニューから選択します。
を見つけてTToolBar
、 から に変更TToolBar
しTMyToolBar
ます。
もう一度右クリックしView as Form
、コンテキスト メニューから選択します。これらの手順を正しく行った場合、ツールバーをクリックするとTMyToolBar
オブジェクト インスペクタに表示されます。表示されない場合 (またはエラー メッセージが表示される場合) は、何か問題があります。コード エディターの上部にあるタブを右クリックして [はい] を選択Close tab
し、変更の保存に関するプロンプトに対して [いいえ] と答えて、必要に応じて最初に作成するように指示したバックアップ コピーから復元します。