5

GExperts にこれを行うための何かがあると思ったのですが、あるのかどうかわかりません。

約 100 の異なるフォームを含むプロジェクトの各フォームで、SCALED プロパティを (デフォルトの TRUE から FALSE に) 変更する必要があります。SCALED のデフォルト値は TRUE であるため、.DFM ファイル (テキストとして表示する場合) に実際には行として表示されないため、GREP (など) で「取得」できるものはありません。

これらすべてのフォームでこのプロパティを設定する簡単な方法を誰かが提案できますか? フォームはさまざまなクラスのサブクラスであり、SCALED プロパティをオーバーライドするある種の中間 TForm 子孫を作成したくありません。その理由の 1 つは、これを (簡単に) 試みたところ、SCALED プロパティが false に設定されていることを発見したためです。継承された作成はフォームに違いはなく、継承された作成のに設定すると例外が発生しました。:-)

誰にも何か提案がありますか?できればフォームを 1 つずつ開くのは避けたいと思っています。

4

3 に答える 3

8

すべてのフォームを共通の祖先の子孫に変更することをお勧めします。その後、基本クラスを変更するだけで、どこでも修正できます。

一般的に、この特定の理由から、頻繁に使用するストック クラスよりもカスタムの子孫クラスを常に使用することを好みます。

于 2009-01-14T01:02:54.280 に答える
7

すべての DFM ファイルがバイナリではなくテキストである場合 (Delphi 4 以前との互換性が必要でない限り、これは良い考えです)、もちろん grep / sed / awk を使用できます。DFM の形式は固定されておらず、代わりに

  OldCreateOrder = False
  Scaled = False

それはまた含むことができます

  OldCreateOrder = False Scaled = False

そのため、TForm のみが持つ他の 1 つのプロパティを grep して、すべてのフォームで DFM に保存されている値に設定し (OldCreateOrder が候補になります)、行を 2 つのプロパティを含む別の行に置き換えることができます。

次にそのフォームを IDE に保存すると、形式が修正されます。

編集:

フォームがバイナリの場合は、Delphi の bin ディレクトリにある convert.exe ツールを使用して (Windows には別の convert.exe があるため、フル パスを使用します)、DFM をテキストに変換し、不足しているプロパティを追加してから (オプションで) convert DFM をバイナリに戻します。また、奇妙な形式に不満がある場合は、DFM をテキストからバイナリに変換し、テキストに戻すと、正しい形式のテキスト DFM ファイルが得られます。これらはすべて簡単にスクリプト化できます。

于 2009-01-14T08:05:35.860 に答える
2

はい、GExpertには「コンポーネントプロパティの設定」エキスパートが含まれています。それはそれが何をするかを見るために「シミュレーション」モードを持っています。このツールは、アプリケーションをコンパイルする前に、データセットまたはデータベース接続を非アクティブ化するのに役立ちます。

于 2009-04-01T05:22:30.773 に答える