Вопрос : как упростить это

Здравствулте!,

Shift: TShiftState;

TShiftState = установило (ssShift, ssAlt, ssCtrl, ssLeft
, ssRight, ssMiddle, ssDouble);

Ok, но свое совместимое с другими языки как C++
So, котор мне нужно сделать его совместимым в моем Param, like

TMyParam = упакованное kbShift record
: DWORD;
end;

I am делая в этом ssShift

if дороги… в then
kbShift переноса: = интежер (ssShift); ssAlt
if в then
kbShift переноса: = kbShift или интежер (ssAlt); ssCtrl
if в then
kbShift переноса: = kbShift или интежер (ssCtrl);
//for каждый тип, котор мне нужно сделать его, но возможно петля может сделать это?

So, котор
… я могу вызвать обратное ssCtrl like

if дороги в

But then
kbShift…, я думает будет более лучшая дорога сделать что… I судимое закрепить петлеть но отсутствие success

kbShift: = -1;
for iий: = низко (TShiftState) к высокому then
kbShift do
if (TShiftState) (TShiftState (I) в переносе): = kbShift или TShiftState (I); работа

not
…! идея hehe

Some?

Regards,
Carlos
class=

Ответ : как упростить это

ПРИМЕЧАНИЕ:
Звучает как вы потребность фактически константа ключевого Кодего представленная в вашей перемеююом TShiftstate. Using интежер (ssShift), интежер (ssAlt), etc. не работать по мере того как он возвратит порядковое значение деталя комплекта. т.е. перенос возвратит 0, alt возвратит 1, etc., котор я довольно уверен это не вы хотите.

если вам нужно фактически ключевое значение, то используйте что-нибудь подобное:
var kc: интежер;

kc: = 0;
если ssShift в AShiftState после этого kc:, то= kc ИЛИ VK_SHIFT;
если ssCtrl в AShiftState после этого kc:, то= kc ИЛИ VK_CONTROL;
если ssALT в AShiftState после этого kc:, то= kc ИЛИ VK_MENU;

если вам нужно использовать его для сообщений мыши, то используйте что-нибудь подобное:
если ssShift в AShiftState после этого kc:, то= kc ИЛИ MK_SHIFT;
если ssCtrl в AShiftState после этого kc:, то= kc ИЛИ MK_CONTROL;
//alt поддержанное в сообщении мыши, вы использовать что-то как GetKeyState обусловить его

Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us