我想在程序的运行过程中,比如说按 F10 键便呼出一窗体!up有分!(100分)

C

cgh1970

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在程序的运行过程中,比如说按 F10 键便呼出一窗体!可是按了后呼出的窗体会被原窗体所遮挡。但别的f1-f12却正常,不知道为什么?
 
把弹出窗体的FormStyle属性设为fsStayOnTop
 
SetForegroundWindow(要弹出的窗体的句柄)
 
F10是默认弹出菜单的热键,不知道你是用的什么方法截获的?
HOOK应该可以的
 
1.首先打开Form属性KeyPreview,并将值设置为True;
2.在Form的OnKeyDown事件中编写过程,其中

Key:Word 代表键值
Shift:TShiftState 代表Alt, Ctrl, and Shift以及鼠标

你可以使用Key=VK_F10来判断F10键,以次类推其他F1,F2...键,当然最直接的是使用数值来判断,
如:if Key=83 then ShowMessage('当前按下了S键');
提示:以上数值均为ASIIC码

附上Shift:TShiftState说明:
Value Meaning
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.
判断请使用Shift=[ssCtrl],以此类推;

-------------------------------------
按照你的说法,最好使用Form.ShowModal;来调用Form,你试试就知道效果了
 
多人接受答案了。
 
顶部