if(GetKeyState(VK_SHIFT)& 0x100)
//нажат любой шифт.
комбинации клавиш Ctrl+d
if (Key == Ctrl+K)ShowMessage("Ctrl+K");
если просто:
if (Key == Ctrl)ShowMessage("Ctrl"); то все получается.
FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
здесь Key - нажатая клавиша, в твоем случае 'D', а Shift - это набор содержащий нажатые клавиши Shift, Ctrl, Alt и кнопки мыши. Сравнивай Key c 'D', проверяй наличие в наборе константы ssCtrl и все будет!
if(Key == 'D' && Shift.Contains(ssCtrl))ShowMessage("Ctrl+D");
Цитата:
Originally posted by Relax
обрабатывай событие OnKeyDown:
FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
здесь Key - нажатая клавиша, в твоем случае 'D', а Shift - это набор содержащий нажатые клавиши Shift, Ctrl, Alt и кнопки мыши. Сравнивай Key c 'D', проверяй наличие в наборе константы ssCtrl и все будет!
if(Key == 'D' && Shift.Contains(ssCtrl))ShowMessage("Ctrl+D");
обрабатывай событие OnKeyDown:
FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
здесь Key - нажатая клавиша, в твоем случае 'D', а Shift - это набор содержащий нажатые клавиши Shift, Ctrl, Alt и кнопки мыши. Сравнивай Key c 'D', проверяй наличие в наборе константы ssCtrl и все будет!
if(Key == 'D' && Shift.Contains(ssCtrl))ShowMessage("Ctrl+D");
very thenks!!!!!!!!1
Допустимв простой функцции, которая идёт либо отдельно либо в OnClick/OnChange?
Точнее как получить переменную Shift?
Цитата:
Originally posted by AlphaOmega
А как проверить нажата ли Ктрл Shift.Contains(ssCtrl)) ВНЕ события KeyDown или KeyUp.
Допустимв простой функцции, которая идёт либо отдельно либо в OnClick/OnChange?
Точнее как получить переменную Shift?
А как проверить нажата ли Ктрл Shift.Contains(ssCtrl)) ВНЕ события KeyDown или KeyUp.
Допустимв простой функцции, которая идёт либо отдельно либо в OnClick/OnChange?
Точнее как получить переменную Shift?
В этом случае нужно использовать GetKeyState. Например:
Код:
Цитата:
Originally posted by kot_
В этом случае нужно использовать GetKeyState. Например:
В этом случае нужно использовать GetKeyState. Например:
Код:
if(GetKeyState(VK_SHIFT)& 0x100)
//нажат любой шифт.
//нажат любой шифт.
Не всегда срабатывает. Точнее он как-то глючно воспринимает это состояние при запуске. Чтобы работало, нужно сначало (при запуске программы) прописать кейбоард event по "отпусканию" (keyup) этой кнопки...