Fråga : hur man förenklar detta

Hälsningar

Shift: TShiftState;

TShiftState = uppsättning av (ssShift, ssAlt, ssCtrl, ssLeft för
, ssRight, ssMiddle som, är ssDouble);

Ok, men dess inte kompatibelt med andra språk gillar C++
So som jag behöver att göra den kompatibel i min Param, like

TMyParam = packad kbShift för record
: DWORD;
end; förmiddag för

I på så sätt gör… ssShift för

if i förskjutningsthen
kbShift: = heltal (ssShift); ssAlt för
if i förskjutningsthen
kbShift: = kbShift eller heltal (ssAlt); ssCtrl för
if i förskjutningsthen
kbShift: = kbShift eller heltal (ssCtrl);
//for varje typ som jag behöver att göra den, men kanske en kretsa kan göra denna?

So för
… som jag kan appellen den omvända långt ssCtrlen för like

if i

But, I-funderare för kbShiftthen
… där, är ett bättre långt som ska göras att… jag försökte att kretsa bara ingen success

kbShift: = -1;
for i: = lågt (TShiftState) till then
kbShift för do
if (TShiftState (I) för kick (TShiftState) i förskjutning): = kbShift eller TShiftState (I); arbete för

not för
…! idé för hehe

Some?

Regards,
Carlos
" klar "

Svar : hur man förenklar detta

NOTERA:
Låter något liknande som du behöver det faktiska nyckel- kodifierar konstanten som föreställs i din TShiftstate variabel. Using heltalet (ssShift), heltalet (ssAlt), Etc. ska inte arbete, som det ska retur ordinalen, värderar av det fastställda objektet. dvs. förskjutningen ska retur 0, alt ska retur 1, förmiddag för Etc. I som nätt säkert detta inte är vad du önskar.

om du behöver det faktiska nyckel-, värdera, använd något något liknande detta:
var kc: heltal;
…,
kc: = 0;
om ssShift i AShiftState därefter kc: = kc ELLER VK_SHIFT;
om ssCtrl i AShiftState därefter kc: = kc ELLER VK_CONTROL;
om ssALT i AShiftState därefter kc: = kc ELLER VK_MENU;

om du behöver att använda den för musmeddelanden, bruk något något liknande detta:
om ssShift i AShiftState därefter kc: = kc ELLER MK_SHIFT;
om ssCtrl i AShiftState därefter kc: = kc ELLER MK_CONTROL;
//alt som inte stöttades i musmeddelandet, du skulle måste att använda något lika GetKeyState att bestämma den

Andra lösningar  
 
programming4us programming4us