1

Delphi XE2 用に AutoOpenUnit IDE Expert (I-OTA-IDE-Notifier の実装と FileNotification イベントの実装) を調整しようとすると、問題が発生しました...

コード エディター (または IDE 自体) によって開かれたすべてのソース ファイルをスキャンする必要があります。

テスト プロジェクトを作成しました: Unit1.pas と Unit2.pas の 2 つのユニットを使用するコンソール アプリ (DPR)

プロジェクトの DSK ファイルを削除するか、コード エディターでファイルを開かずにプロジェクトを保存するか、DPK ファイルのみを保存します。

現在、.DPR ファイル自体が通知イベントに渡されることはほとんどありません。それが起こった唯一のケースは、「プロジェクトを開く」を実行して指定したときです。

ただし、File/Reopen を実行すると、DRPOJ ファイルが開かれたと通知されますが、DPR ファイルではありません。プロジェクトを事前に開いた状態で IDE を再起動すると、DPROJ ファイルが再び「開かれ」、DPR ファイルが「スキップ」されます。

アクティブなプロジェクトが変更されたなどの通知があります。プロジェクト DSK ファイルとデフォルトの空のプロジェクト グループ ファイルの「ファイル オープン」通知もあります。ただし、プロジェクトのソース ファイルではありません。

ここで、DPROJ ファイルからプロジェクト名を抽出し、自分自身に「通知」するという大雑把なハックを行うことができます。それは事実ですが、そのIDEは「通常の」イベントを発生させませんか???

さらに悪い。プロジェクトを開いている (ただし、プロジェクトの DPR ファイルは閉じている) 場合に、[ソースの表示] アクションを実行すると、コード エディターがプロジェクトの新しいタブを開いている間、エキスパートにイベントは何も表示されません。

プロジェクト ルート ファイルを含む新しいタブがコード エディタで開かれているときに、IDE から確実に通知を受け取る方法はありますか?

アップデート。iOTAEditorNotifierIDE OTAでそのインターフェースの登録呼び出しがないように見えるので、CnWizardsがそれをどのように利用するかを読み込もうとしていることがわかりました...

PS https://github.com/the-Arioch/XE2_AutoOpenUnit

PPS XE2 string double-free バグ デモ: http://www.sql.ru/forum/1300873-a/xe2-string-double-free

4

0 に答える 0