2012-11-01 31 views

回答

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; 
+1

編輯不是我不贊成你的個人風格,而是試圖提高大多數讀者的可讀性。 – NGLN

+0

@NGLN:不要冒犯,也不要開始長時間的討論(我以前曾經討論過),但是你怎麼知道「大多數讀者」需要「提高可讀性」?你有沒有進行過調查?我有我的風格,而你有你的風格。我不糾正你的帖子,所以請不要糾正我的 - 他們只會被糾正。 – HeartWare