問題タブ [toolsapi]

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 投票する
1 に答える
185 参照

delphi - TOrderedListEditDlgへの公式インターフェースはありますか?

専門家では、Delphiが表示するダイアログを再利用して、プロジェクトのライブラリパスを編集したり、同様の目的で使用したりしたいと思います。

ここに画像の説明を入力してください

私はそれを使用するためのハックを見つけました(ページでTOrderedListEditDlgを探してください)。リンクされた記事を書いた人は彼が何をしているのか知っていると思うので、私はそれほどハッキーな解決策を望んでいませんが、誰が知っていますか...だから:TOrderedListEditDlgへの公式インターフェース(おそらくOTA)を知っていますか?

PS:ダイアログ全体を再作成するのはおそらく簡単なことですが、一貫性とDRYの原則が好きです。

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

delphi - bplデルファイエキスパートとdllデルファイエキスパートの違いはどれですか

私はデルファイIDEエキスパートで働いていますが、依存関係の問題を回避するために、これらの回答の1つで提案されているように、このエキスパートをdllエキスパートとして再構築することを考えていました。今では、エキスパート(bplとしてコンパイル)がグローバル変数(インスタンス)にアクセスScreenします。 ApplicationDelphi IDEの)ので、エキスパートをdllとしてコンパイルするかどうか疑問に思っていましたが、これらの変数にアクセスできます。また、知りたいです。which are the main differences between a bpl delphi expert and a dll delphi expert?

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

delphi - デルファイIDEエキスパートからIDEのフォームを列挙する方法

私はdelphiIDEの専門家で働いており、Delphi IDEによって表示されるすべてのフォームを列挙する必要があります。現在、Screen.Formsプロパティを使用していますが、OTAを使用してこれを行う別の方法があるかどうか疑問に思っています。Screen.Forms私のエキスパートがBPLである場合にのみ機能するためですが、現在はdllエキスパートに移行しています。

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

delphi - 「ランタイム テーマを有効にする」のチェックを外すか、Delphi XE の内部マニフェストを削除しますか?

次の方法で使用したい Delphi XE で作成しているコンポーネントがあります。

  1. ユーザーが新しい空のプロジェクトを作成します。

  2. ユーザーがコンポーネントをフォームにドロップします。

  3. 私のコンポーネントのいくつかの特別なデザインタイム コードが実行されます。これにより、プロジェクト オプションが変更され、プロジェクト オプションの [ランタイム テーマを有効にする] チェックボックスがオフになります。これが可能かどうかさえわからないので、可能かどうか尋ねています。

#3 が不可能な場合は、このコンポーネントの「使いやすさ」の問題に対する別の解決策が必要です。私が抱えている問題は、ユーザーが [ランタイム テーマを有効にする] のチェックを外して静的にリンクされたマニフェスト ファイルを無効にしない場合、EXE にリンクされている静的に生成されたマニフェストが、EXE の外部に必要な外部マニフェスト ファイルを上書きするように見えることです。ディスク。また、実行時にこれらのマニフェストを変更する必要があるため、外部マニフェストが必要になります。もちろん、必要に応じて、これらのマニフェストを使用してランタイム テーマ機能を有効にすることもできます。2 つ目の質問は、外部マニフェストと内部マニフェストの優先度に関するものです。「ランタイム テーマを有効にする」をオンにすると、Delphi アプリにリンクされている内部マニフェスト リソースよりも、外部マニフェストが何らかの形で優先されることがありますか?

#3 以外の許容される解決策:

A. Delphi がマニフェストを生成しないようにします。B. 内部の .manifest ファイルが見つかった場合でも、何らかの方法で実行時に Windows に外部の .manifest ファイルを認識させ、優先順位を付ける。

C. 最も良くないソリューション。実行時に、コンポーネントの CoCreateInstance が失敗した後、リソースを列挙し、外部マニフェストが存在し、混乱していることを報告し、コンポーネントを使用する開発者に、コンポーネントが吐き出すランタイム エラー メッセージを読み取って、無効にするように指示することができます。ランタイムテーマのチェックボックスをオンにして、アプリを再構築します。マニフェストの抽出と読み取りは、Delphi に簡単に変換できる C++ コードを使用して、別の stackoverflow question hereで既に説明されています。

更新受け入れられた回答は私が尋ねたこととまったく同じですが、ハックと見なされ、アクティベーションコンテキストに関するデビッドの回答ははるかに正気であり、推奨されるアプローチです。

Update2組み込みのマニフェストは、プロジェクト設定を介して、リンクするマニフェストを明示的に指定することにより、通常、Delphi の新しいバージョン(XE5 以降)でオーバーライドされます。

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

delphi - ウェルカムページブラウザでOTAパッケージウィザード内からURIに移動するにはどうすればよいですか?

私がやろうとしているのは、プロジェクトに含まれているHTMLページを表示する(編集しない)機能を作成することです。ウェルカムページにはすでにWebブラウザが埋め込まれているため、その候補として適しているようです。

キュリオスなぜ?これが背景情報のある質問です。

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

delphi - HTMLドキュメントの特定のプロジェクトマネージャーのローカルメニュー項目の動作を変更するにはどうすればよいですか?

プロジェクトページオプションIDEアドイン¹を複製中です。特に、このアドインは、プロジェクトマネージャーの[開く]アクションのデフォルトの動作²を独自の動作に置き換えます。つまり、ウェルカムページの表示に使用されるのと同じ内部ブラウ​​ザーでHTMLページを開きます。だから、私は同じことをしたいのですが、現在私はこのメニューに到達できませんでした。

プロジェクトマネージャーのメニュー項目の追加を容易にするIOTAProjectManagerインターフェースを試しましたが³、それnotifiersが互いに分離されていることを学んだので、おそらくこのAPIは私の目的には役に立たないでしょう。また、アプリケーション全体のアクション処理に接続しようとしました。それは私に全く結果を与えませんでした、おそらくアクションリストはそこで全く使われていません。

私は、上記の処分は私にハックに頼るしかないのだと思います。それはハックの解決策をここで本当に歓迎します。だから、何かアイデアをお願いしますか?


¹詳細については、このQを参照してください。

²関連するアイテムは、 [開く] 、 [マークアップ表示]、[デザイナーを表示]の3つです。アドインなしでデフォルトでShowDesignerを開きます。

³実際、このAPIを使用すると、アイテムをオンザフライで追加でき、おそらくさらに複雑になります。


図解されているコンテキストメニュー:

ここに画像の説明を入力してください ここに画像の説明を入力してください

TOndrejが以下のコメントで述べているように、[開く]メニュー項目の動作は対応するダイアログで[プロジェクトページ]として構成されたHTMLドキュメントに対してのみ変更されました。

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

delphi - OTA (Open Tools API) を使用して、Delphi IDE が変更された構文ハイライトの色を更新するように指示するにはどうすればよいですか?

を Rad Studio IDE (外部アプリケーションとして実行されるこのツールの現在のバージョン) と統合するためのプラグインを作成していますがDelphi IDE Theme Editor、これまでのところすべて正常に動作しています (下の画像を参照)。 Delphi IDE で選択した構文ハイライトの色を更新する方法

ここに画像の説明を入力

説明させてください。構文ハイライトの色を変更する標準オプション ([エディター オプション] -> [色]) では、任意の要素をカスタマイズして、新しい前景色と背景色を割り当てることができます。. OK .ボタンを押すと、IDE は変更を適用し、IDE エディターはウィンドウは新しい設定で更新されます。

現在、新しい値を変更して保存することはできますが、Delphi IDE に新しい構成を適用するように指示することはできません。変更は、IDE を再起動した場合にのみ表示されます。

ToolsAPI ユニットを検索したところIOTAEditOptionsIOTAHighlighterおよびIOTAHighlightServicesインターフェイスが見つかりましたが、変更された設定を更新 (リロード) するオプションが含まれているようには見えません。

また、(tdump を使用して) マングルを解除し、coreide1XX.bpl ファイルの関数を直接呼び出してみましたが、これもうまくいきませんでした。

How I can instruct to the Delphi IDE refresh the modified syntax highlight colors using OTA (Open Tools API)?

さらに情報が必要な場合、または質問が明確でない場合はお知らせください。

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

delphi - Delphi Open Tools API を使用して、自分のアイテムを Delphi IDE Insight (F6) に追加します

INTAIDEINsightServiceおそらく使用したい、AddItemまたはAddActionListDelphi の IDE インサイト機能にエントリを追加したいと考えています。

Delphi OTA wiki によると、 INTAIDEINsightService 独自のアクションを登録できます。私が見つけることができる唯一の参照はhereであり、API の名前に言及しており、API が存在することを示しています。それについての Delphi のヘルプには何もありません。Delphi XEのToolsAPI.pasユニットは、アクションを登録できるこのインターフェイスの 2 つのメソッドを示しています。

コメントには、「項目は [説明 |] カテゴリ | TCustomAction.Caption として表示されます。カテゴリを指定しない含まれるアクションは表示されません。」と書かれています。

アクションを使用した他のドキュメントやサンプルは見つかりませんでした。アクションまたは単なるアイテムが説明またはカテゴリ「helloworld」で登録され、検索可能になり、F6 を押すと表示される単純な「hello world」の例は完璧ですが、アクションが優先されます。

このようなウィザードはINTAIDEInsightItem、IDE インサイト内でレンダリングするために実装する必要があるように見えますが、それが hello-world サンプルに「必要」かどうかはわかりません。アクションを使用する必要があるのか​​、それとも通常の「アイテム」の追加で十分なのか、よくわかりません。

(私の最終的な目標は、新しい gExperts スタイルのエキスパートを作成して、「IDE インサイトを使用して名前で検索して、ライブラリ パス内の任意のユニットを開く」ことですが、一度に 1 項目ずつ ide インサイトにユニット名を追加することから始めます。 .)

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

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

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

ここに画像の説明を入力

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

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

delphi - フォームに「ToolsAPI not found」というメッセージが表示される

パッケージには、ToolAPi IOTAIDENotifierインターフェイスを実装するコンポーネントがあります。パッケージをセットアップしてコンパイルし、パレットに表示できます。このコンポーネントのメソッドは、それを使用するプロジェクトがコンパイルされる (実行されない) ときに特定のことを行うように設計されています...これまでのところ、問題がなければすべてです。

別のプロジェクトに属する TForm でこのコンポーネントを使用すると、後で問題が発生します。ビルドしようとすると、コンパイラ メッセージFile not found: ToolsAPI.dcu が表示されます。

パッケージの用途は次のとおりです。

PACKAGESETUPは、bpl をコンパイルするときにのみ定義されます。

エラー メッセージをダブルクリックすると、IDE は ToolsAPI への参照が宣言されているファイルを開きます...どうすればこの問題を解決できますか?