Нужно смотреть в сторону таких событий формы как:
procedure
FormKeyDownprocedure
FormKeyUpи внутри этих фунций разобрав посланую комбинацию делать нужную команду.
параметры в этих функции такие
Key - это номер (индекс) зажатой клавиши см Гугл или пользуйся командой Ord('C')- даст номер (индекс) клавиши с буквой С.
Shift - множество определено в classesh.inc как:
TShiftState = set of TShiftStateEnum; где
TShiftStateEnum = (ssShift, ssAlt, ssCtrl,
ssLeft, ssRight, ssMiddle, ssDouble,
// Extra additions
ssMeta, ssSuper, ssHyper, ssAltGr, ssCaps, ssNum,
ssScroll,ssTriple,ssQuad,ssExtra1,ssExtra2);
Пример формы:
- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
type
{ TForm1 }
TForm1 = class(TForm)
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
);
begin
if Key= 27 then //если нажали ESC то выходим из программы
close;
if (Key=76) and (ssAlt in Shift) then //если Alt+L - то минимизировать
application.Minimize;
end;
end.
Если же нужно думать про глобальное сочетание клавишь то смотри в сторону глобальных Хуков (Hook) ловушек (но это для винды) как уже написано поищи на форуме.
Ну если консоль то в винде Нужен Hook ^)