Contributor: MAYNARD PHILBROOK        

{
To shift a LongInt or Pointer into another Word do this..

The HoBitsToShift is the number of Bits you want to move
the way i did it you get the upper half of the LongInt first...
}

Function Shitftit(Var MyLongInt : LongInt) : Word;
Var
  Count  : Byte;
  TShift : Word;
Begin
  TShift := 0;
  For Count := 1 to HowBitsToShift Do
  Begin
    Tshit := (Tshit Shl 1);
    If MyLongInt and $80000000 <> 0 Then
      TShift := (TShift or $01);
    MyLongInt := (MyLongInt Shl 1);
  End;
  ShiftIt := TShift;
End;