2017-06-28 20 views
0

以前のバージョンのDelphiでは、カスタムフォームが公開プロパティを示しました。デザイナーに公開されているプロパティが公開されていません

しかし、私はDelphi 10.2 Tokyoの問題を抱えています。具体的には、this postにある適切なメソッドを呼び出す良い方法はありません。

それを要約すると、RegisterCustomModule()に呼がDesignIntfユニットにおいて、しかしながら、必要とされるにはTCustomModule存在しない、here記載、またベースのカスタム・モジュールは、TInterfacedObjectから継承(ただしTBaseCustomModuleTCustomModuleClassがある)がTForm私のフレームワークとしてFMXを使用していません。

最新版のDelphiで公開プロパティを表示するFMXフォームを登録する正しい方法は何ですか? ComponentBaseClassCustomModuleClass

答えて

2
uses DesignEditors; 

type 
    TMySpecialForm = class(TCustomForm) 
    end; 


RegisterCustomModule(TMySpecialForm, TCustomModule); 

RegisterCustomModuleは、2つのパラメータを取ります。最初のカスタムフォームクラスはTCustomFormから派生します。 2番目はデザイナーが使用するクラスです。このクラスでは、TBaseCustomModuleDesignIntf単位)から派生し、ICustomModuleインターフェイスを実装するという2つのことを行う必要があります。ユニットのコメントを見てください。

TCustomModuleクラスは、設計時にカスタムフォームに追加する以外の動作がない場合に使用するために用意されています。

uses DesignEditors; 

type 
    TMySpecialFormDesigner = class(TCustomModule, ICustomModule) 
     function GetVerb(Index: Integer): string; override; 
     function GetVerbCount: Integer; override; 
    end; 

RegisterCustomModule(TMySpecialForm, TMySpecialFormDesigner); 
+0

感謝:あなたはデザイナーで、たとえば、さまざまなプロパティ設定コマンドを持つポップアップメニューが、あなたがあなた自身のTCustomModuleクラスを作成しながら、自分のフォームのカスタム動作のいくつかの種類をしたいです場合

Dave、要件を理解しましたが、TCustomModuleクラスがDesignEditorsユニットで宣言されたことはわかりませんでした。また、この例を理解してください。 – SmeTheWiz

関連する問題