cuando se coloca la parte else no se debe cerrar el then con ;. Si colocas ese ; el compilador lo interpreta como el fin del IF. Observa:
BIEN:
Código Delphi
[-]if (condición)
then sentencia
else sentencias;
MAL:
Código Delphi
[-]if (condicion)
then sentencia;
else sentencia;
Recuerda que cuando son 2 o más sentencias debe añadirse BEGIN-END. Naturalmente, si en el then debes colocar un begin-end a dicho end no se le debe finalizar con ; porque estarás en el mismo error.
Saludos,
PD: A estudiar la sintaxis y semántica de Pascal/Object Pascal