0

TButton や TCheckBox などの一連の VCL コントロールと、Scintillaテキスト エディタのインスタンスを含む Delphi フォームがあります。テキスト エディターにタブで出入りできるようにしたいのですが、タブは Windows ではなく VCL ライブラリによって処理されているようです。

コードを調べてみたところ、タブは TWinControl クラスの SelectNext メソッドと FindNextControl メソッドによって処理されているようです。これらのメソッドは TWinControl オブジェクトで機能しますが、テキスト エディタは、TButton や TCheckbox のように TWinControl から派生したものではありません。

非 VCL コントロールと VCL コントロールの間でタブ移動を許可する簡単な方法はありますか?

4

1 に答える 1

0

(これをウィキの回答にしました。ロブは上記のコメントで非常に正しいため、これは逆流するだけです)

特殊文字/キーのキーボード処理は、VCL によってかなり特殊な方法で処理されます。これを Win API 経由で直接バイパス/拡張することは確かに可能ですが、簡単ではありません。

コントロールの周りにカスタム VCL コンポーネント ラッパーを作成すると (VCL ソースをガイドとして使用)、長期的には同じくらい簡単で率直に言えばより柔軟になります。 off は、保守性と再利用の点で非常に優れています。

編集:

もちろん、この無料の Delphi Wrapperを Scintilla エディタにそのまま使用することもできます。

于 2010-01-04T04:23:53.553 に答える