鼠标单击BUTTON或LABEL时,怎样判断ctrl健是否已按下?

解决方案 »

  1.   

    看下列事件:
    KeyDown(var Key: Word; Shift: TShiftState); dynamic;
    其中的TShiftState就可以来做这一判断KeyDown(var Key: Word; Shift: TShiftState); dynamic;type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
    其中的意义如下:
    ssShift The Shift key is held down.
    ssAlt The Alt key is held down.
    ssCtrl The Ctrl key is held down.
    ssLeft The left mouse button is held down.
    ssRight The right mouse button is held down.
    ssMiddle The middle mouse button is held down.
    ssDouble The mouse was double-clicked.
    你可以做这样一个判断
    if (ssCtrl in Shift) and (ssLeft in Shift) then
    击主要先声明shift变量;
    Shift: TShiftState你试试看!
      

  2.   

    Tlable是没有KeyDown事件的,可如下解决:
         设置窗口的Keypreview属性为true;
    设一全局变量记录是否按下CTRL键,用布尔型就行了(初始为false),
    在窗体(TFORM1)的KeyDown事件中判断是否按下了CTRL键(参考上面的代码),是的话,全局变量赋值为真,再在Tlable或Tbutton的单击事件中加以判断...