7

最近、長期にわたる Delphi プロジェクトをオープン ソースに変換しました。複数の人がすでにパッチを提供してくれています。これは素晴らしいことですが、残念ながら、Delphi 2006 (およびそれ以降) で保存されたフォームとフレームには、古いバージョンでは処理されない新しいプロパティが .dfm に含まれています。フォームは IDE によって適切に処理されますが ("プロパティを無視しますか?")、フレームは実行時に読み込まれ、エラーが発生します。私に関する限り、オプションではありません。

これらのプロパティを .dmf ファイルから手動で削除しましたが、もっと洗練された解決策があるかどうか本当に疑問に思っています。新しい IDE から下位互換性のある形式で保存する方法はありませんね。サポートされていないプロパティを .dfm から取り除く既存のツールはありますか? 私が見逃している他のエレガントなソリューションはありますか?

通常、商用プロジェクトでは、プロジェクトを適用可能な最新バージョンにアップグレードするだけです...しかし、これはオープン ソースであるため、まだ Delphi 7 で作業している開発者を失いたくありません。それには私自身も含まれます。 、 実際に。

4

3 に答える 3

12

JEDI JVCLプロジェクトは、小さなユーティリティ dc.exe (Delphi クリーナー) と、Delphi の古いバージョンには存在しない DFM のプロパティのリストを使用します。私のファイルには、次のテキストが含まれています。

*.PopupMode
*.PopupParent
*.ExplicitLeft
*.ExplicitTop
*.ExplicitWidth
*.ExplicitHeight
*.BevelKind
*.BufferDocument
*.DoubleBuffered
*.ParentDoubleBuffered
*.DisableHyperlinks
*.AlwaysEnquoteFloats
*.PixelsPerInch

Subversion に変更をコミットする前に、dfms を消去するバッチ ファイルからこの dc.exe ユーティリティを実行します。これに対するバッチ ファイルの構文は次のとおりです。

dc.exe -s -fd10.txt *.dfm -i

あなたは私のものをつかむことができます:

http://sites.google.com/site/warrenpostma/files
于 2010-01-27T21:57:20.133 に答える
5

Andy のDFMCheckを試すことができます。プロジェクト内のすべてのフォームとフレームを自動的に開いたり閉じたりできるため、IDE は不明なプロパティを削除できます (Marcoが書いたように)。

于 2010-01-28T07:37:01.067 に答える
4

まあ、完全を期すために:

サポートされている最も古いDelphiでdfmsを開き、不明なプロパティをすべて削除し、プロパティを変更して保存します。

あなたの目的には、ウォーレンのソリューションの方が優れていますが、回避策になる可能性があります。私たちがデュアルD7-D2006ingだったとき、私はしばらくそれをしました。

于 2010-01-27T22:33:48.533 に答える