Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Umsetzungsproblem Filterklasse

  Alt 3. Sep 2005, 15:33
Hi,
ich habe mir für ein Projekt eine Klasse geschrieben, die eine TIdMessage auf einige Dinge überprüfen soll. Genau gekommen ist es eine Filterklasse. Das Problem ist nun, dass ich verschiedene Kriterien in Form eines Sets habe und ich jetzt irgendwie bei der Ergebnis Berechnung dieses Set einbeziehen muss.
Derzeit sieht das ganze so aus:
Delphi-Quellcode:
function TFilterClass.Match(aMessage: TIdMessage): boolean;
var
  Result1, Result2, Result3, Result4: boolean;
begin
  Result := false;

  // Einzelne Such-Felder überprüfen
  if ([sSubject] in FSearchIn) then begin // Betreff
    Result1 := { Überprüfe... };
  end;
  if ([sFrom] in FSearchIn) then begin // Absender
    Result2 := { Überprüfe... };
  end;
  if ([sTo] in FSearchIn) then begin // Empfänger
    Result3 := { Überprüfe... };
  end;
  if ([sBody] in FSearchIn) then begin // Nachrichteninhalt
    Resul4 := { Überprüfe... };
  end;

  Result := { ENDGÜLTIGES ERGEBNIS }
end;
Mein Problem ist beim endgültigen Ergebnis. Denn ich kann nicht einfach die ganzen einzelnen Results mit and verknüpfen, da ich ja dann z.B. haben (true, true, false, false), obwohl die letzten beiden Results nicht berücksichtigt werden können, da sie nicht in dem FSearchIn-Set vorhanden sind. D.h. die Nachricht würde rausfallen, obwohl eigentlich die Nachricht auf den Filter zutrifft.

Kann mir da jemand einen Vorschlag machen bzw. die Erleuchtung bringen?

Chris
  Mit Zitat antworten Zitat