問題タブ [opentools]

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.

0 投票する
2 に答える
1478 参照

delphi - Delphi-IDE: クラス補完の仕組みを変更するには?

Delphi でのクラス補完は時間を大幅に節約しますが、それをカスタマイズする方法が見つかりませんでした。

  1. ユニット全体にスローされるのではなく、プロパティのゲッターとセッターをグループ化したいと考えています。インターフェース部分はちゃんと生成されていますが、IDEに任せると実装部分がぐちゃぐちゃになってしまいます。メソッドをデフォルトで次のように並べたい:

    function TAaa.getAaa();

    手続きTAaa.setAaa();

    手続きTAaa.Baa();

    function TAaa.getCow();

    手続きTAaa.setCow();

    手続き TBbb.getAaa()

  2. 実装セクションをインターフェイスと同じ順序にする必要があります。

  3. 生成されたメソッドの本体を次のようにしたい:

.

これを行うためのツールはありますか?それとも、このようなことを行うために opentools API に飛び込む必要がありますか?


関連する質問: Class Completion はどのような順序で結果を表示しますか?

0 投票する
2 に答える
1011 参照

delphi - IDE のファイルが Open Tools API を使用して編集されているかどうかを検出する方法

ClearCase にアクセスする Open Tools API を使用して、小さな IDE プラグインを作成しました。「チェックイン」、「チェックアウト」などのメニュー項目があります。問題なく動作しますが、IDE エディターで入力を開始した場合、またはファイルを保存しようとした場合に、読み取り専用ファイルを自動的にチェックアウトしたいと考えています。これは可能だと思いますか?

色々試しましたが結局諦めました。IOTAEditorServices.KeyboardServices には、有望に見える AddKeyboardBinding メソッドがあります。それを使用して、バインド タイプ btPartial の通知機能を追加し (後で btComplete を試しました)、プラグインはいくつかのショートカット キーの押下を検出し始めましたが、すべてのキーボード イベントではありませんでした...どんなアイデアでも大歓迎です!

0 投票する
1 に答える
518 参照

delphi - Delphi の OTA: ビルド中にアクティブな構成を取得する方法はありますか (D2010)?

すべての構成を一度にビルドするよう Delphi に依頼できます。[構成のビルド] をクリックして、[作成] コマンドを呼び出します。

すべてのconfを構築する
(出典: free.fr )

これにより、すべての構成が次々に構築されます。

問題は、コンパイル イベントに反応しなければならない IDE エキスパートがいることです。イベントをフックするために IOTAIDENotifier80 を登録します。BeforeBuild イベントと AfterBuild イベントがあります - 私たちはそれらに興味があります。IOTAProject は各イベントに渡されます。

問題は、アクティブな構成が変更されないことです。つまり、「デバッグ」構成が選択されている場合 (太字で示されています) - BeforeBuild/AfterBuild イベントへのすべての呼び出しは、デバッグ構成プロファイルを返します (IDE が異なるプロファイルを次々にコンパイルしても)。ここでは IOTAProject のプロパティを意味します。

IOTAProjectOptionsConfigurations も使用しようとしましたが、その ActiveConfiguration プロパティは、現在コンパイルされているプロファイルに関係なく、常に同じ「太字」のプロファイルを返します。

問題は、「実際の」現在のプロファイルを取得する方法はありますか?

0 投票する
2 に答える
198 参照

delphi - DeskUtil のドキュメントはどこにありますか?

DeskUtil のドキュメントやヘルプはどこにありますか? Delphi アドインをビルドしようとしていますが、アドイン ドッキング フォームをアクティブな IDE デスクトップに保存/登録/ロードする際に問題が発生します。あちこちでいくつかの例を読んだ後、私は DeskUtil メソッドを使用していますが、例はこれらのメソッドがどのように機能するか、および IDE のロード/破棄のメカニズムについて深くは触れていません。DeskUtil または OpenTools Api に関する公式ドキュメント/ヘルプはありますか? つまり、私のような開発者は、IDE と OpenTools Api に関する深い知識 (記事やデモではなく) をどこでどのように入手できるのでしょうか?

ご協力いただきありがとうございます。

0 投票する
3 に答える
921 参照

delphi - DelphiのオープンツールAPIから新しいユニット名を取得するにはどうすればよいですか

Delphi XEでウィザードを作成しましたが、正常に機能しています。ただし、DelphiのOTAが作成できる、生成されたデフォルトのユニット名(またはフォーム名やプロジェクト名)にアクセスする方法はまだわかりません。

古いスタイルのウィザードでは、ToolServices.GetNewModuleNameを呼び出して、関連するソースファイルを生成するときに使用できる使用可能なユニットとフォーム名を見つけることができました。今日のオープンツールAPIに相当するものは何ですか?

ToolsAPIユニットのコメントによると、Delphiにファイル名を生成させるには、IOTAModuleCreator.GetImplFileNameメソッドから空白を返す必要があります。このメソッドから空の文字列を返していますが、Delphiが生成しているファイル名にアクセスできる場所がわかりません。

0 投票する
2 に答える
286 参照

delphi - DUnit GUITestrunnerのコードからToolsAPIを呼び出すことはできますか?

ToolSAPIユニットのグローバル変数BorlandIDEServicesを初期化して、DUnit GUITestrunnerコードから使用できるようにする方法はありますか?

この例では、BorlandIDEServices変数が初期化されていないため、Project変数はnilになります。GUITestrunnerは、IDE内からデバッグモードで実行されます。

0 投票する
1 に答える
745 参照

delphi - Delphi OpenTools API: AfterCompile 通知を取得するには?

OpenTools API は、コンパイルの前後に通知を受けるためのインターフェースを定義ます

このインターフェイスをエクスポートするウィザードを作成しました:

ウィザードを次のように登録します。

しかし、どちらも:

  • IOTAIDENotifier.BeforeCompile
  • IOTAIDENotifier.AfterCompile
  • IOTAIDENotifier.FileNotification
  • IOTAIDENotifier50.BeforeCompile
  • IOTAIDENotifier50.AfterCompile

呼ばれます。私は何を間違っていますか?


これまでに呼び出された唯一のものは

  • IOTAWizard.GetName
  • IOTAWizard.GetIDString

その順番で。

0 投票する
1 に答える
1905 参照

delphi - Delphi OpenTools API: ターゲット exe 名を取得するには?

指定されたターゲット実行可能ファイルの名前を取得するにはどうすればよいIOTAProjectですか?

GExpert の OpenTools API FAQから:

binary/exe/dll/bpl/ocx/etc のファイル名を特定するにはどうすればよいですか。コンパイルまたはビルドによって生成されますか?
- Delphi 8 以降の場合は、 を使用しますIOTAProjectOptions.TargetName
- 以前のリリースでは、プロジェクトの実行可能ファイルの拡張子を指定する$Eディレクティブをスキャンし、 「OptputDir」で指定されたパスでバイナリ ファイルを検索する可能性があるため、メソッドの実装ははるかに複雑です。 project オプション、またはそのオプションが空白の場合はプロジェクトディレクトリ (他の多くの可能性と複雑さの中でも)。このようなツールを実装する最善の方法は、CodeGear CodeCentral サンプル ID 19823のサンプル コードから始めることです。

私の場合は後者に当てはまります。インターフェイスが与えられたIOTAProject場合、次の内臓はどうなるでしょうか。


Delphi 8以降の場合、(テストされていない)答えは次のとおりです。

しかし、複雑なのは Delphi 8 より前のほうが難しいです。

Jedi JCL には、TJclOTAExpertシミュレートするために一緒に使用できる内部に多数のメソッドがあります。

私はそのコードを苦労して取り組んでいます。数週間以内に、自分の質問に対する回答を投稿できるようになることを願っています。

しかし、それまでの間、他の誰かが私の質問に答えることができるという評判を得られるように、それを公開します.

0 投票する
3 に答える
3550 参照

delphi - プロジェクトへのユニットの自動追加

コンポーネントが自動的Delphi 7にドロップされるプロジェクトDelphi 2006のファイルに追加する必要があるユニットを使用しています。.dprEureka Log がユニット 'ExceptionLog' をプロジェクト ファイルに自動的に追加する方法と同様に、次のようになります。

ここに画像の説明を入力

プロジェクト内の任意のフォームにコンポーネントをドロップしたときに、プロジェクト ファイルにプログラムでユニットを追加する方法を誰か教えてもらえますか?