Ich würde mir in Deinem Fall auf jeden Fall zu debugzwecken die werte von
dp1.Date, date und led1.Text ausgeben lassen.
Am besten auch noch nach dem Datumsvergleich eine Messagebox
Delphi-Quellcode:
if (CompareDate(dp1.Date, date) < 0) then
begin
MessageDlg('Datumsüberprüfung ist in Ordnung', mtWarning, [mbOK], 0);
if led1.Text = '' then
begin
Dadurch kannst Du ja womöglich das Datum schon mal ausschließen. Und lass Dir wie schon gesagt die beiden Datumswerte auch anzeigen.