2012-02-08 4 views
3

Delphi 2010のダイアログではないフォームにヘルプの疑問符ボタンを表示させる方法はありますか?非ダイアログフォームにヘルプの疑問符ボタン(biヘルプ)を表示しますか?

私は、ユーザーがコントロールに行き、それをクリックすることができるように、ヘルプ疑問符を使用したいが、デフォルトで境界線スタイルがダイアログである場合にのみ使用可能ですが、私たちのアプリケーションは、ダイアログフォーム

を使用していません

私はCreateParamsプロシージャをオーバーライドしていましたが、ボタンを強制的に表示するためにどのコードを挿入するのかよくわかりません。

ポール

答えて

0

非最大化と最小化の横に表示される非モーダルウィンドウのトップ(グラバー)以外の領域にヘルプボタンが必要ですか?

:このような整数ヘルプコンテキストから特定のページにヘルプを開くフォーム上

(JEDI VCLに含まれる)の使用TJvCaptionButton、コントロールボタンのヘルプ疑問符のビットマップを入れて、持っています、

Application.HelpContext(aHelpContext); 

ウィンドウの非クライアント領域にペイントするため、一部のWindowsテーマ設定で奇妙な動作が発生することがあります。私はJedi JvCaptionButtonsがAeroを有効にしてWin7でかなりネイティブに見えるとは思わない。

更新下記のリンクの質問はコメントでDavidHによって寄与このようなヘルプモード、にフォームを入れて言及:

SendMessage(Handle, WM_SYSCOMMAND, SC_CONTEXTHELP, 0); 

終了。

+0

こんにちはウォーレン、理想的には私はウィンドウの動作を模倣する必要がありますか?すなわち、ユーザが疑問符をクリックしてコントロール上にクリックすると、コントロールをクリックすると、コントロールのヘルプがポップアップウィンドウに表示されます。 – Paul

+0

そして別の質問をしました:http://stackoverflow.com/questions/9212917/how-do-i-put-a-form-in-to-help-mode –

+0

ありがとう、私はこれをチェックします今 – Paul

6

は、MSDNによると、これは、Delphi、特に制限はないが、それはWinAPIのによって課されます。知っているように、ヘルプの疑問符はWS_EX_CONTEXTHELPスタイルでオンになっています。これはWS_MAXIMIZEBOXスタイルとWS_MINIMIZEBOXスタイルと組み合わせることはできません。したがって、フォームにキャプション内のボタンを最大化したり最小化したりしない限り、非ダイアログフォームを使用して疑問符を表示できます。最大化と最小化のボタンが必要な場合は、ウィンドウをサブクラス化してカスタムの非クライアントペイント(独自の疑問符を描く)と非クライアントヒットテスト処理を提供する必要があります。

+0

ありがとうスタン、それは非常にコードに厄介になるように見える!私はどこから始めるべきか分かりません!私は別のボタンを使って同じ機能をどのように作り出すことができるか知っていますか?私たちのアプリケーションではページコントロールを使用していますが、右側にクローズボタンがあり、アクティブなページを閉じることができるので、ヘルプの疑問符ボタンを追加することができます。ユーザーがクリックすると、 – Paul

+0

Paul、私はあなたが 'SetCapture'と' Screen.Cursor:= scHelp'でおそらくリグを作ることができると思うが、これはコメントの対象となるものではなく本格的な質問のように聞こえる。いくつかの他の答え。フォームに「ヘルプモード」を手動で入力することについて誰かが既に尋ねてきたかどうかを確認し、答えが見つからない場合は自分で質問してください。 –

関連する問題