Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Кто поможет? 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);


Наверх

Титульная страница Поиск, карта сайта Написать письмо