If I understand it right you want something like this? Where red color is boundary of TPA and green square is zone of points ,which you want delete from TPA? Where red is basic TPA ,and you want to delete everything ,which is not in green zone?

If yes I have code already made ,I will paste ,when clean it up.
is smaller than 30
OR larger than 70
sorry I'm logic freak
Way 1:
Simba Code:
program new;
MyBox ,KeepBox: TBox ;
ATPA : T2dPointArray;
I :integer;
begin
ATPA := TPAToATPAEx(ATPA[0],70,70); // Your ATPA
MyBox:= GetTPABounds(ATPA[0]);
if (MyBox.x2 >= 70)and(MyBox.y2 >= 70) then // Make sure your ATPA has right dimension or it might fail
begin
KeepBox := InttoBox(Mybox.x1+30,Mybox.y1+30,MyBox.x1+70,MyBox.y1+70);
For I:= 0 To High(ATPA[0]) do
if not(PointInBox(ATPA[0][i], KeepBox)) then
DeleteValueInTPA(ATPA[0], I);
end;
end.
Way 2:
Simba Code:
program new;
MyBox : TBox ;
ATPA : T2dPointArray;
I :integer;
begin
ATPA := TPAToATPAEx(ATPA[0],70,70); // Your ATPA
MyBox:= GetTPABounds(ATPA[0]);
if (MyBox.x2 >= 70)and(MyBox.y2 >= 70) then // Make sure your ATPA has right dimension or it might fail
begin
For I:= 0 To High(ATPA[0]) do
if (ATPA[0][i].x < (MyBox.x1+30)) or (ATPA[0][i].x >(MyBox.x1+ 70)) or (ATPA[0][i].x < (MyBox.y1+30)) or (ATPA[0][i].x >(MyBox.y1+ 70)) then
DeleteValueInTPA(ATPA[0], I);
end;
end.