I?˘_~m not sure I understood the question, you have to limit speed, we?˘_Tll you could do it in a nicer speed dependant way, like
[pascal]AccX:= acceleration * cos(Angle);
AccY:= acceleration * sin(Angle);
XMul:= 1;
YMul:= 1;

If ((AccX>0)and(SpeedX>0) or (AccX<0)and(SpeedX<0)) then
begin
spd:= SpeedX;
if spd<0 then spd:=- spd;
XMul:= (MAX_SPEED ?˘_" spd)/ MAX_SPEED;
End;

If ((AccY>0)and(SpeedY>0) or (AccY<0)and(SpeedY<0)) then
begin
spd:= SpeedY;
if spd<0 then spd:=- spd;
YMul:= (MAX_SPEED ?˘_" spd)/ MAX_SPEED;
End;

SpeedX:= SpeedX + XMul * AccX;
SpeedY:= SpeedY + YMul * AccY;
[/pascal]