The online help that comes with Delphi lists "control-C-exit" as the reason for a runtime error 217, here a listing of Delphi 3 Runtime Errors:


 STATUS_FLOAT_DIVIDE_BY_ZERO:    200;
 STATUS_INTEGER_DIVIDE_BY_ZERO:  200;
 STATUS_ARRAY_BOUNDS_EXCEEDED:   201;
 STATUS_STACK_OVERFLOW:          202;
 STATUS_FLOAT_OVERFLOW:          205;
 STATUS_FLOAT_UNDERFLOW,
 STATUS_FLOAT_DENORMAL_OPERAND:  206;
 STATUS_FLOAT_INEXACT_RESULT,
 STATUS_FLOAT_INVALID_OPERATION,
 STATUS_FLOAT_STACK_CHECK:       207;
 STATUS_INTEGER_OVERFLOW:        215;
 STATUS_ACCESS_VIOLATION:        216;
 STATUS_CONTROL_C_EXIT:          217;
 STATUS_PRIVILEGED_INSTRUCTION:  218;
In the case of 217, this listing is wrong.

In fact, Delphi executables will die with runtime error 217 when an exception was raised before SysUtils is initialized or after it is finalized. In both situations the regular exception handling is not put in place.

If the error occurs right at your application's startup, check your initialization sections. Try to move code into a later part, e.g. into FormCreate() events.
Otherwise check your units' finalization sections.

Some typical situations where this can happen: