Si esto no es una errata al escribir el mensaje:
Código Delphi
[-]
Application.ProcessMessages;
while (FrmPrincipal.resp<>'') do
Es ahi donde esta el problema, ya que debería ser algo así:
Código Delphi
[-]
while (FrmPrincipal.resp<>'') do
Application.ProcessMessages;