Недавно добавленные исходники

•  Animation Loaders  968

•  DeLiKaTeS Tetris (Тетрис)  5 901

•  TDictionary Custom Sort  7 854

•  Fast Watermark Sources  7 522

•  3D Designer  10 751

•  Sik Screen Capture  8 081

•  Patch Maker  8 281

•  Айболит (remote control)  8 329

•  ListBox Drag & Drop  7 170

•  Доска для игры Реверси  101 138

•  Графические эффекты  8 394

•  Рисование по маске  7 773

•  Перетаскивание изображений  6 364

•  Canvas Drawing  6 741

•  Рисование Луны  6 670

•  Поворот изображения  5 801

•  Рисование стержней  4 748

•  Paint on Shape  3 447

•  Генератор кроссвордов  4 438

•  Головоломка Paletto  3 581

•  Теорема Монжа об окружностях  4 382

•  Пазл Numbrix  2 839

•  Заборы и коммивояжеры  3 790

•  Игра HIP  2 555

•  Игра Go (Го)  2 561

•  Симулятор лифта  2 953

•  Программа укладки плитки  2 380

•  Генератор лабиринта  3 129

•  Проверка числового ввода  2 614

•  HEX View  3 017

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Как определить нажаты ли клавиши Shift, Alt или Ctrl в какой-либо момент времени



Пpиходит пpогpаммист к пианистy - посмотpеть на новый pояль. Долго ходит вокpyг, хмыкает, потом заявляет: - Клава неyдобная - всего 84 клавиши, половина фyнкциональных, ни одна не подписана, хотя... шифт нажимать ногой - оpигинально.

В приведенном примере показано как определить нажата ли клавиша Shift при выборе строчки меню. Пример также содержит функции проверки состояния клавиш Alt, Ctrl.


function CtrlDown : Boolean;
var
  State : TKeyboardState;
begin
  GetKeyboardState(State);
  Result := ((State[vk_Control] and 128) <> 0);
end;

function ShiftDown : Boolean;
var
  State : TKeyboardState;
begin
  GetKeyboardState(State);
  Result := ((State[vk_Shift] and 128) <> 0);
end;

function AltDown : Boolean;
var
  State : TKeyboardState;
begin
  GetKeyboardState(State);
  Result := ((State[vk_Menu] and 128) <> 0);
end;

procedure TForm1.MenuItem12Click(Sender: TObject);
begin
  if ShiftDown then
    Form1.Caption := 'Shift'
  else
    Form1.Caption := '';
end;





Похожие по теме исходники

Alternative HTTP-Proxy




Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте