Frage : wie man dieses vereinfacht

Hallo,

Shift: TShiftState;

TShiftState = stellte von ein (das ssShift, ssAlt, ssCtrl,
ssLeft, ssRight, ssMiddle, ssDouble);

Ok, aber sein nicht kompatibles mit anderen Sprachen wie C++
So, das ich es kompatibel bilden muss in meinem Param, like

TMyParam = verpacktes record
kbShift: DWORD;
end;

I morgens…

if ssShift im Verschiebungthen
kbShift auf diese Art tuend: = ganze Zahl (ssShift);
if ssAlt im Verschiebungthen
kbShift: = kbShift oder ganze Zahl (ssAlt);
if ssCtrl im Verschiebungthen
kbShift: = kbShift oder ganze Zahl (ssCtrl);
//for jede Art, die ich sie tun muss, aber möglicherweise kann eine Schleife dies tun?


So, das ich das Rückweise like

if ssCtrl kbShift then
… im

But benennen kann, ich, denken, dass es eine bessere Weise gibt zu tun, dass… ich versuchte mich zu schlingen aber kein success

kbShift: = -1;
for I: = niedrig (TShiftState) zum hohen (TShiftState) do
if (TShiftState (i) in der Verschiebung) then
kbShift: = kbShift oder TShiftState (i);


not Arbeit! hehe

Some Idee?

Regards,
Carlos

Antwort : wie man dieses vereinfacht

ANMERKUNG:
Klingt wie Sie Notwendigkeit die virtuelle Schlüsselcodekonstante, die in Ihrer TShiftstate Variable dargestellt wird. Using ganze Zahl (ssShift), ganze Zahl (ssAlt), etc. arbeitet nicht, da es den Ordnungswert des Satzeinzelteils zurückbringt. d.h. Verschiebung bringt 0, Alt zurückbringt 1, etc. zurück. Ich bin dieses bin nicht recht sicher, was Sie wünschen.

wenn Sie den virtuellen Schlüsselwert benötigen, etwas Ähnliches verwenden:
var kc: ganze Zahl;

kc: = 0;
wenn ssShift in AShiftState dann kc: = kc ODER VK_SHIFT;
wenn ssCtrl in AShiftState dann kc: = kc ODER VK_CONTROL;
wenn ssALT in AShiftState dann kc: = kc ODER VK_MENU;

wenn Sie sie für Mäusemitteilungen verwenden müssen, etwas Ähnliches verwenden:
wenn ssShift in AShiftState dann kc: = kc ODER MK_SHIFT;
wenn ssCtrl in AShiftState dann kc: = kc ODER MK_CONTROL;
//alt, das nicht in Mäusemitteilung gestützt wurde, würden Sie etwas wie GetKeyState verwenden müssen, es festzustellen

Weitere Lösungen  
 
programming4us programming4us