익명 메소드를 이용해서 LinkeList로 구현 된 데이터 구조에 대한 Iteration을 작성 해보았습니다.
우선, 익명 메소드의 타입을 선언합니다.
type TSimpleIterateProcedure = reference to procedure(ALinkedListNode:TLinkedListNode);
우리가 작성하는 클래스는 TLinkedList라고 했을 때, Iterate 메소드를 아래와 같이 구현합니다.
procedure TLinkedList.Iterate(AProcedure: TSimpleIterateProcedure);
...
begin
Current := Head;
while Current <> Tail do begin
AProcedure(Current);
Current := Current.RightNode;
end;
end;
사용법을 보이기 위해서, 메모 콤포넌트에 각 노드들의 이름을 표시한다고 가정하겠습니다. 소스 코드는 다음과 같습니다.
procedure TfmMain.FormCreate(Sender: TObject);
begin
LinkedList.Iterate(
procedure (ALinkedListNode:TLinkedListNode) begin
Memo1.Lines.Add(ALinkedListNode.Name);
end
);
end;
모든 라인은 언제나 동일한 형태로 사용되며, 5: 라인에서처럼 반복하는 동안 실행해야 하는 코드만 변경해서 사용하시면 됩니다. 아래 링크에서는 반복하는 동안 멈추기 위한 메소드를 같이 제공하고 있습니다.
실제 코드는 아래의 링크를 참고하시기 바랍니다.
| 2013년 1월 9일 PM 3시에 온라인 강의 합니다 - ffmpeg for Delphi (0) | 2013.01.05 |
|---|---|
| 델파이에서 에어로 끄고 켜기 (0) | 2013.01.05 |
| Interlocked Singly Linked Lists for Delphi (0) | 2012.10.19 |
| Real Grid Plus - 리얼 그리드가 새제품으로 출시된다고 합니다. (0) | 2012.09.07 |
| 오브젝트 파스칼 책을 찾는 분들에게 (2) | 2012.09.05 |