Der Fehler ist
Query1.Active:=true;
Eine
Query die ein Insert/Update/Delete ausführt hat keine Ergebnismenge.
Und mit Query1.Active würdest Du eine anfordern/erwarten. Ist nur bei Select-Anweisungen sinnvoll/nötig.
Mit
Query1.ExecSQL;
wird ja schon das Insert ausgeführt.
Windows Vista - Eine neue Erfahrung in Fehlern.