I came up with a solution for this. Since I am on windows, I found I can
just check GetAsyncKeyState between keypressed and readkey like this:
If PTCCRT.KeyPressed then
Begin
isShiftDown := GetAsyncKeyState(VK_Shift);
MyKey:=PTCCRT.ReadKey;
End;
James