1. ein sehr interessantes Einrücksystem weist du da auf.

Soweit ich informiert bin ist es so einiges geläufiger:
Delphi-Quellcode:
if __ then
begin
...
end
else
begin
...
end;
2. Würde ich dir DRINGENST abraten an den Backups dein Programm zu testen!
Kopier dir doch den Backupordner komplett weg und teste dann an diesem kopiertem Ordner dein Programm und erst wenn du sicher bist, dass es nur die richtigen Ordner löscht, setzt du es an der Stelle ein, wo die wichtigen Backups liegen.
In dem Code fehlt übrigens ein
end;, oder ich erkenn es nicht durch seltsame Einrückungen.
Die Überprüfung
if altdatei<>date then begin;
ist an dieser Stelle nicht sinnvoll. Du willst ja nur löschen, wenn die Datei ein bestimmtes Backup"alter" aufweist und nicht immer wenn es älter als das aktuellste ist!

"a10" ist ja dein Ordner + dein Dateiname. Du löschst da erst den Ordner und dann die Datei. Wenn es so rum funktioniert, kannst du das Dateilöschen weglassen. Wenn nicht musst du die 2 Zeilen umdrehn.
PS:
Wenn du die Datei innerhalb des gleichnamigen Ordners löschen willst, musst du übrigens den Ordner ergänzen:
if altdatei<>date
then
begin
deletefile(a1+'\'+a10);
deletefile(a1+'\'
+a10+'\'+a10+'.dat');
end;
Conscience is what hurts when everything else feels so good.