問題タブ [uses-clause]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - Delphi 7 の「uses 句」で未使用のユニットを特定して削除するにはどうすればよいですか?
これにより、私の非常に大規模なプロジェクトの一部では、実行可能ファイルのサイズがかなり縮小されるはずです。きっと他のメリットもあると思います。
編集:プロジェクトをスキャンして冗長なものを自動的に削除するユーティリティはおそらくありますか? 私は何百ものプロジェクトを持っており、「自動削除」が最優先ですが、必要に応じて、ユーティリティを特定して手動で削除します。
delphi - ユニットファイル内のユニットファイルパスで使用
問題があります。説明してみます。
クラスがあり、新しい機能を持つ可能性のあるユニットがあります。
D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas
どちらも同じクラスです: IClass_1 = クラス
このファイルのさまざまなバージョンにコード番号を使用しています。
別のユニット ファイル (UnitFile2.pas) は、そのユニット ファイル (UnitFile1.pas) を使用します。
また、2 番目のユニット ファイル (UnitFile2.pas) には異なるバージョンがあります。
F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas
どちらも同じクラス: IClass_2 = class(IClass_1)
今問題が始まります。
「F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas」には「D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas」が必要です
「14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas」には「8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas」が必要です
ただし、ファイル名は同じです(このようなシステムが必要です。したがって、同じです)。ユニット ファイルでは、delphi ではそのように書くことはできません。
ファイル F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas 内。「D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas」の UnitFile1 を使用します。
私の問題を教えていただければ幸いです。どのユニット ファイルをそのパスで使用するかをコンパイラに伝えるにはどうすればよいですか? (私はDelphi-7を使用しています)
delphi - どのユニットが別のユニットを使用しているかの階層を表示するにはどうすればよいですか? (デルファイ)
大規模なプロジェクトがあり、各ファイルが USES 句で参照するユニットの階層を確認する必要があります。
元。
この種類の依存関係ツリーを表示するにはどうすればよいですか? Delphi の新しいバージョンの 1 つにこのような機能があったことは覚えていますが、それが何と呼ばれていたかは覚えていません。プラグインだったのかもしれません。
これを行う方法に関するヒントは素晴らしいでしょう。私はそれを行うために独自のプログラムを書き始めましたが、すでに3時間ほど無駄にしており、まだpasファイルのパーサーに取り組んでいます。
delphi - Delphi:未使用のユニットがuses句にリストされていることの欠点はどれですか?
私はcnPackを使用していますクリーナーを使用していますが、一般的に、役に立たないユニットを持つことの欠点はどれですか?
私はそれらのいくつかを知っています:
1)もちろん、ユニットがプロジェクト全体で使用されない場合、無駄なリソースの消費が発生します
2)コードインサイトは役に立たない結果をもたらします
3)コードの洞察が遅くなります
しかし、単純なケースを想像してみてください。
- 2つのフォームを持つプロジェクトがあり、そのうちの1つでStrUtilsを使用していますが、両方でStrUtilsを宣言しました...この場合のメモリ消費量の欠点はありますか?
delphi - 使用句の違い
インターフェイスブロックで宣言されたユニットと実装ブロックで宣言されたユニットの違いは何ですか?
delphi - プロジェクト内のすべてのユニットの uses 句にユニットを追加しますか?
大規模なプロジェクトの uses 句にユニットを追加することの難しさによって、特定の種類のコードのクリーンアップとリファクタリングが非常に困難になっていることがわかりました。
1 つのプロジェクト内のすべての delphi .pas ユニットの interface-uses-clause にユニットを追加したいのですが、これは 500 以上の場所で手動で行うことを意味します。巨大なユニットをリファクタリングして 1 つのユニットを 2 つに分割するたびに、おそらく「notepad++」などを使用して「MyOldUnit」を「MyOldUnit,MyNewUnit」に変更して検索および置換できますが、それは安全ではない場合もあります。 . また、"MyOldUnit" が uses 句の最後の部分 ("uses MyOldUnit;") である場合も見逃しています。
とにかく、ファイルの検索と置換は危険なビジネスです。そのようなツールが存在しない場合は、Castalia delphi パーサーを使用して作成することを検討しています。GExperts、Castalia、ModelMakerCodeExplorer を確認しましたが、プロジェクト内のすべての uses 句にユニットをバッチ挿入する方法はありません。これを行うためのツールが存在することを願っています。
第 2 に、多くの場合、別のユニットに属していないあるユニットから機能を移動しますが、これは、そのユニットをプロジェクトのユニットの 30% に追加する必要があることを意味しますが、それが既にある他の 70% には追加しません。追加した。つまり、正規表現のアプローチではなく、パーサーのアプローチが必要です。
delphi - IPPeerCommon と IPPeerClient
Embarcadero が提供するCloudExplorerと CloudUploadのクラウド サンプルについて説明します。これらは条項の下にリストされIPPeerClient
てIPPeerClient
いるユニットです。uses
これらのユニットがクラウドに対して/クラウドで何をするかを理解しようとしていますが、それらに関する情報を見つけることができないようです.
ユニットを見つけて読み込もうとしましたが、「宣言の検索」を選択しようとすると、IPPeerCommon.pas
またはIPPeerClient.pas
がないことがわかり、Delphi XE3 フォルダーに見つからないようです。Google/Embarcadero の検索ではリンクが返されませんでした。これは、明らかな何かが欠けているように感じさせます。
IPPeerCommon と IPPeerClient を使用すると、クラウド サンプルまたは一般的にはどうなりますか。これら2つのコードが実際にある場合、どこで見つけるべきですか?
delphi - 定義が見つからない場合に何かを含める方法
設定クラスで次のコードを使用して、何を使用するかを決定します。しかし今、正しい .INC ファイルをプロジェクト フォルダーにコピーするのを忘れていたという問題に遭遇しました。定義が見つからないため、AV が返されます。定義が見つからない場合、U_SettingsConnIni が常に uses セクションにあることを確認するにはどうすればよいですか
delphi - Delphi が誤ってユニットを自動的に追加するのを停止する
プロジェクトを XE7 から XE8 に更新しています。当面は XE7 で動作する必要があるため、いくつかの条件が必要です。たとえば、ImageList は単位が変更されたため、Vcl.ImgList は XE8 の Syste.ImageList です。Delphi の両方のバージョンで機能させるには、uses 句を次のようにします。
時々これはうまくいきます。ただし、Delphi は System.Imagelist ユニットがすでに存在していても、条件付きであるにもかかわらず、自動的に再追加することがよくあります。
これがコンパイルされると、XE8 は文句を言います。
a) Delphi がユニットを追加するのはなぜですか? b) 回避策を知っている人はいますか?