2016-05-16 5 views
-1

私のフォームにコンポーネントがあります(TPushEvents)。私は明示的にそれのプロパティ(Provider)の1つから値を削除しました。コンポーネントのプロパティを取得してnilにする方法はありますか?

ソースコントロールに保存してチェックしました。私はプロパティが実際にfmxファイルから削除されていることがわかります。ここでは、エントリは、私が空白のプロパティとは、フォーム保存した後に次のようになります。私は、プロジェクトを閉じて、再度開いている場合

object PushEvents1: TPushEvents 
    Left = 128 
    Top = 200 
end 

を、プロパティは再追加し、それにリセットされ、デフォルトです(それがで指摘しています最初のT*Providerコンポーネントは、私の場合はTKinveyProviderという形式で見つけることができます。これはリリースモードで構築するとき私にあらゆる種類の悲しみを引き起こします。ここでは、エントリは、私が再オープン後のプロジェクトは、フォーム保存、次のようになります。

object PushEvents1: TPushEvents 
    Provider = KinveyProvider1 
    Left = 128 
    Top = 200 
end 

そして実際にそれを保存し、私はプロパティがFMXファイルに戻ってきたことがわかります。 FormCreateがトリガされる前にTPushEvents開始はTKinveyProviderにアクセスするためFormCreatenilにプロパティを設定する

は無意味です。

TPushEvents.Providerプロパティをnilにしておくと、プロジェクトをリロードすることができますか?

私の理想的な世界では、プロパティをfmxファイルに保存することができる定数を入力できますが、それでも何も指していないことを示しています。

+0

「プロシージャをロードし、オーバーライドします。」を作成します。継承された呼び出しの後でLoadedに設定してみてください。 – FredS

+1

このオブジェクトはFMXまたはあなた自身/第三者からのものですか?可能であれば、このコンポーネントを修正するのが最善の解決策になります。実際の値がファイルからロードされることを期待してコンストラクタの初期値をいくつか設定しましたが、ファイルに明示的に格納されているプロパティのみが変更されていることがわかりました。 「Delphi in a Nutshell」には、すべてのプロパティをデフォルト値に自動的に設定するための素晴らしい方法があります。 –

+0

@YuriyAfanasenkov短編小説は、TPushEventオブジェクトです。それはエンバカデロから組み込まれているので、いくつかのスペルをする必要があります。私の大きな希望は、デザイナビューでオブジェクトのパラメータとしてNilをハードコーディングする方法があることでした。 – BIBD

答えて

0

私は理想的ではない解決策を見つけました。

TPushEventsコンポーネントの作成全体をFormCreateに移動すると、プロジェクトを再オープンするときに、コンポーネントがRAD Studioによって「修正」される心配はありません。

私は、製品の明らかな哲学に従っている場合(コードで作成するのではなく、フォーム上にコンポーネントをドロップする)、これは確かにそのモデルから抜け出すことです。

関連する問題