2008-12-14 64 views
2

我在德爾福2009年有一個自定義的TObjectList後裔,我想用它的枚舉器稍微玩一下,並向MoveNext方法添加一些過濾功能,使它跳過某些對象。 MoveNext由DoMoveNext調用,這是一種虛擬方法,所以這不應該很難覆蓋......除了一件事。 TObjectList的TEnumerator不是它自己的類;它在TObjectList聲明中聲明爲嵌套類型。如何覆蓋嵌套類型的方法?

有沒有簡單的方法來重寫我的後代類中的TEnumerator.DoMoveNext,還是我必須重新實現整個TEnumerator?這不是一個很大的班級,但我寧願將裁員保持在最低限度,如果我可以...

回答

8

其統計員它自己的類。它只是有一個嵌套的範圍。爲它編寫後代,你只需要像通常那樣聲明一個類,並且當你指定新類的祖先時,就給出完全限定的類型名稱。

type 
    TMasonEnumerator = class(TObjectList.TEnumerator) 
    protected 
    function DoMoveNext: Boolean; override; 
    end; 
0

Excelent topics關於統計員。

+1

謝謝:)但我沒有涵蓋那個特定的主題。 – gabr 2008-12-15 07:55:21