В своей игре дошел до управления и решил делать его не на ВинАпи, а на ДХ. Но при инициализации клавиатуры:
DirectInputCreate(hMainWnd, DIRECTINPUT_VERSION, Keyboard, nil);
Keyboard.CreateDevice(GUID_SysKeyboard, Keyb, nil);
Keyb.SetDataFormat(c_dfDIKeyboard);
Keyb.SetCooperativeLevel(hMainWnd, DISCL_FOREGROUND xor DISCL_NONEXCLUSIVE);
Keyb.Acquire;
у меня при выполнении второй и третьей строк выскакивает "Acces violation....", потому что если эту процедуру, кроме первой строки, закоментить, ошибок нету.
Типы данных:
Keyboard: IDirectInputA;
Keyb: IDirectInputDeviceA;
Keys: array[0..255] of byte;