最近改訂された特定の検索フォームがあります。その機能は、標準的な検索フォームの機能です:上部のいくつかのボックスにいくつかの基準を入力し、検索ボタンを押し、結果を下にグリッドで表示します。しかし、それは機能が醜いと非常に限られていたので、私の同僚の1人はそれを再建しました...新しい仕事のために出発する前に。今私は最後のいくつかの詳細を完了しようとしています。優先順位を上げてTVirtualStringTreeプロセスのキーを押すにはどうしたらいいですか?
変更の1つは、古いTListBox
グリッドをより強力なTVirtualStringTree
に置き換えることでした。しかし、このプロセスでは、グリッドの行をクリックしてグリッドにフォーカスを合わせ、を入力した場合は、と入力すると、適切なイベントハンドラが起動し、入力を処理して開きます選択された項目の詳細ビューただし、このグリッドでを入力するとと入力すると、Default = true
プロパティのフォームにTButton
がその代わりにOnClick
を発生させます。
TVirtualStringTree
は、入力フォーカスがあるときに優先させることができます。これにより、ユーザーがフォームにディスパッチする前にEnterキーを押すことに応答します。
ええと...おそらくうまくいくでしょうが、第三者コンポーネントのコードを変更する必要がないソリューションはありますか? –
あなたは大歓迎です。コードを変更する必要はありません。インターポーザーを使うこともできますし、コントロールの 'WindowProc'プロパティに代入することでウィンドウプロシージャをインターセプトすることもできます。 'WM_GETDLGCODE'を処理しないと、デフォルトのボタンがメッセージを取得します。あなたは望みません。 –
うわー。私は実際に 'WindowProc'プロパティが事実であることを知らなかった。それは私がそれを修正するために必要なものであることが判明しました。ありがとう! –