пятница, 25 апреля 2014 г.

Продолжение про "фильтры и генераторы"

В продолжение темы - http://programmingmindstream.blogspot.ru/2014/04/blog-post_24.html

Как выглядят фильтры?

А очень просто.

Вот примерно так:

type
 TEmptyParaEliminator = class(TElementFilter)
 ...
 THyperlinkEliminator = class(TElementFilter)
 ...
 TPageBreakEliminator = class(TElementFilter)
 ...

function TEmptyParaEliminator.NeedWriteElement(anElement: Element): Boolean;
begin
 Result := not anElement.IsKindOf('TextPara') OR not anElement.Attribute['Text'].Empty;
end;

...

function THyperlinkEliminator.NeedWriteElement(anElement: Element): Boolean;
begin
 Result := not anElement.IsKindOf('Hyperlink');
end;

...

function TPageBreakEliminator.NeedWriteElement(anElement: Element): Boolean;
begin
 Result := not anElement.IsKindOf('PageBreak');
end;

Мысль понятна?

По-моему - банально...

2 комментария:

  1. я бы назвал методы CanWrite а не NeedWrite… если я правильно понял суть

    ОтветитьУдалить
    Ответы
    1. "я бы назвал методы CanWrite а не NeedWrite…"
      а в чём ПО СУТИ разница?

      Удалить