![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто поможет? DirectInput ;организация управления.
Познователь © (2003-04-22 18:54:00)
Часто используют функции библиотеки DirectInput для организации
управления. Однако у меня проблема. Есть функция для подготовки
работы с устройством.
...
hRet := DirectInput8Create(hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, FDI, nil);
if Failed(hRet) then begin
Result := hRet;
Exit
end;
hRet := FDI.CreateDevice (GUID_SysKeyboard, DDIKeyboard, nil);
if Failed(hRet) then begin
Result := hRet;
Exit
end;
---------
Компилирую. Пишет Incompatible types: "TDIDataFormat" and "PDIDataFormat"
hRet := DDIKeyboard.SetDataFormat(c_dfDIKeyboard);
if Failed(hRet) then begin
Result := hRet;
Exit
end;
---------
hRet := DDIKeyboard.SetCooperativeLevel(Handle, DISCL_FOREGROUND or DISCL_EXCLUSIVE);
if Failed(hRet) then begin
Result := hRet;
Exit
end;
Result := DDIKeyboard.Acquire;
end;
...
Перед захватом ус-ва необходимо вызвать метод SetDataFormat объекта, связанного в ус-вом ввода. Описывается формат, в котором
вводимые данные возвращаются ус-вом. Задаем стандартный формат.
В чем же ошибка.
k-man (2003-04-28 17:12:00) [1]
В общем разобрались с терминологией-)
Shurik (2003-04-28 04:09:00) [2]
Э-э-э... Я это и имел в виду :)
k-man (2003-04-27 15:17:00) [3]
> Shurik
О таком феномене не слышал. Если быть точным
@ - операция адресации.
Shurik (2003-04-27 03:55:00) [4]
@ - не адрес, а оператор взятия адреса
k-man (2003-04-23 22:39:00) [5]
Ну я об этом и хотел сказать только по возможности пояснив.-)
cyborg (2003-04-23 17:55:00) [6]
Проще говоря @ является адресом :)
k-man (2003-04-23 15:55:00) [7]
К вопросу понимания:
Ну вообще я ничего не понимаю в графике, но судя по сообщению компилятора которое ты привел
> Компилирую. Пишет Incompatible types: "TDIDataFormat" and
> "PDIDataFormat"
можно сделать вывод о том что требуется указатель в качестве аргумента. Так как ID типов указателей обычно начинаются с префикса "P" - pointer, в то время как идентификаторы остальных типов данных обычно начинаются с префикса "Т"-Type.
А префикс "@" насколько я знаю в данном случае обозначает указатель на аргумент.
Хотя может я ошибаюсь...
Познователь (2003-04-23 13:19:00) [8]
cyborg
Теперь все ОК. В книге однако этого небыло, т.е. "@". Знать - хорошо, понимать вдвойне хорошо. Интересно это ошибка автора или еще почемуто? Хотя, наверно, это не ошибка.
cyborg (2003-04-22 20:33:00) [9]
DDIKeyboard.SetDataFormat(@c_dfDIKeyboard);