39

更新をチェックインすると、.DFMファイルExplicitWidthExplicitHeightプロパティが追加されていることに気づきましたが、その理由はわかりません。

私の質問は次のとおりです。

  • これらのプロパティは何のためにありますか?
  • Delphiによって自動的に追加されるのはなぜですか?

ExplicitWidth以下は、追加されたプロパティを示す例です。

object Splitter2: TcxSplitter
    Left = 0
    Top = 292
    Width = 566
    Height = 8
    Cursor = crVSplit
    HotZoneClassName = 'TcxXPTaskBarStyle'
    AlignSplitter = salBottom
    Control = BottomPanel
    Color = clBtnFace
    ExplicitWidth = 8
end
4

4 に答える 4

35

DDevExtensionsを使用すると、これらのプロパティをdfmに保存することを無効にできます:
http ://andy.jgknet.de/blog/?page_id = 10

Explicit *プロパティリムーバーを追加して、DFMファイルを古いDelphiバージョンとの互換性を維持します

于 2010-03-19T12:12:25.343 に答える
29

グーグルから....

元の記事はここにあります。

Explicitプロパティは、AlignまたはAnchorプロパティがデフォルトから変更される前に、コントロールの以前の境界を記憶します。

Explicitプロパティが書き込まれないのは、Alignプロパティがデフォルト値のalNoneに戻されたときだけです。

これは、Explicitプロパティが実際にコントロールによって使用され、境界が以前の状態にリセットされる場合です。

于 2010-03-19T12:06:28.857 に答える
0

Delphiは、公開されたプロパティの値がデフォルトと異なる場合にのみ、DFMファイルに値を追加します。

例えば:

property ExplicitWidth: Integer read FExplicitWidth write FExplicitWidth default 1;

ExplicitWidthの値が1でない場合は、DFMに書き込まれます。「デフォルト」が定義されていない場合、任意の値がDFMに書き込まれます。

TcxSplitterは標準のDelphiコンポーネントではないため、プロパティの目的について作成者に確認することをお勧めします。

于 2010-03-19T11:35:57.303 に答える
0

これらのランダムな(非)出現から多くのノイズに遭遇します:

ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0

そこで、DFMファイルからこれら(4つすべてが存在し、0である)のみを削除するツールを作成しました。

https://github.com/gonutz/dfm_clear_explicit_zeros

于 2021-11-12T09:23:51.977 に答える