Nimm mal die 'If Key=' Abfrage raus. Wäre ja denkbar, das es sich nur um ein Wahrnehmungsproblem handelt. Ansonsten stelle das Problem mit einem kleinen Testprogramm dar.
Delphi-Quellcode:
Program Tester;
{$APPTYPE CONSOLE}
Procedure TestCompareDate (a : TDate; bStr : String);
var
b : TDate;
Begin
b := StrToDate(bStr);
Writeln ('CompareDate('DateToStr(a),',',DateToStr(b),')=',CompareDate(a,b));
End;
begin
TestCompareDate(Now,'1.1.2015');
TestCompareDate(Now,'1.1.2016');
end.
Trage jeweils deine Testdaten ein, mit denen bei Dir angeblich '1' rauskommt.