如何从静态“TPoint数组”中删除/删除特定成员或元素?

时间:2012-11-01 05:56:00

标签: arrays delphi element point

我想从静态“TPoint数组”中删除/删除特定成员或元素。怎么做?

1 个答案:

答案 0 :(得分:5)

如果用“静态”表示“非动态”(即固定大小的数组),则不能。你可以做的最好的事情是将它移动到数组的末尾,然后以某种方式标记最后一个TPoint,这将允许你在后续传递中忽略它。

如果您正在谈论动态(即可变大小的数组,即VAR A : ARRAY OF TPoint;),那么您可以使用以下例程:

TYPE
  TPointArray = ARRAY OF TPoint;

PROCEDURE RemoveIndex(VAR ARR : TPointArray ; Index: INTEGER);
  VAR
    I : INTEGER;

  BEGIN
    IF (Index<LOW(Arr)) OR (Index>HIGH(Arr)) THEN EXIT;
    FOR I:=Index TO PRED(HIGH(ARR)) DO ARR[I]:=ARR[SUCC(I)];
    SetLength(ARR,PRED(LENGTH(ARR)))
  END;