Maybe simply like this?

Code:
procedure TBlurp.DoMove(TimeGap: Double);
begin
  inherited;
  if not isfalling then begin
    X:=X+X_direction;
    if X <= 0 then X:=0;
    if X > 640-Image.Width then X:=640-Image.Width;
    if Y < 0 then Y:=0;
    if Y > 480-Image.Height then Y:=480-Image.Height;
  end;
  Collision;
end;
but now that I think about it , this problem might go away if I finish up the part where I can't enter a platform from any angle
That may be true.