データの代わりに、デルファイのTDBGrid右のPopupMenuのみポップアップメニュー

デルファイとの最近の開発は、あなたがコントロール上でマウスの右ボタンのポップアップメニューをクリックし、DBGridコントロールを使用しています

関連DBGridのポップアップメニューのタッチを達成することができますが、この効果は関係なく、あなたは、マウスの右ボタンをクリックした場所のあります

限りのDBGridにポップアップメニューがあるだろうと、私は、データ領域にポップにしたい、ネットNより多くの情報を確認し、我々は満足を見つけることができません。

偶然発見したデータ領域は、MouseDownイベントをトリガしないときDBGridのは、上のとき、マウスを右クリックしたとき

だから私は、ポップアップメニュー、のMouseUpとMouseDownイベントザ・マウスがデータ領域にはない区別するために使用していました

まず、グローバル変数を定義します。

VaRのShowPopupMenu:ブール=真; //デフォルトでは、ポップアップメニュー5月

そして、非データゾーンがイベントをトリガするときにマウスが、今回は偽ShowPopMenuに設定されたときにMouseDownイベントを定義します

:Actipro CodeHighlighter(フリーウェア)のhttpによって生成さ強調表示コード// www.CodeHighlighter.com/-->procedure TForm1.gridAccountMouseDown(:;:TMouseButton;シフト:TShiftState; X、Y:送信者ボタンTObjectの整数)。
始める
  場合(ボタン= mbright) その後
  始まる
    ShowPopupMenuを: = falseは、 
  エンド;
エンド ;

マウスアップはShowPopupMenuがでMouseUpイベントで真であるかどうかを判断するとき

コードActipro CodeHighlighterコード(フリーウェア)HTTPプロデュースハイライト:// www.CodeHighlighter.com/-->procedure TForm1.gridAccountMouseUp(送信者:TObjectを;ボタン:TMouseButton;シフト:TShiftState; X-、Y:整数); 
開始し
  たIF( = mbrightボタン)ShowPopupMenuthenが
   始まる
    IF(gridAccount.SelectedField <> nilのその後、  // データがある場合
    始まる
      // ポップアップメニューをするために
    終了;
   終了; 
  showpop: = 真;
 エンド ;

これは、達成することができたときにポップアップコンテキストメニューのデータ領域

注意:私はだれでもTHXを知らせるためのより良い方法を持っていることを望んでいる場合、初心者だけで、愚かを達成するために、このメソッドを使用することができたので。 

おすすめ

転載: www.cnblogs.com/jijm123/p/10990263.html
おすすめ