No he seguido el hilo del principio pero ComPort usa el evento OnRxChar para detectar cualquier caracter que entra por el puerto serie, asi que deberas de separar en dos partes tu codigo, en uno el que usas para escribir en el puerto y en OnRxChar para leer lo que respondio.
Código Delphi
[-]
procedure TForm1.BEnviarClick(Sender: TObject);
var
tmp, resp, at : AnsiString; i : Integer; data : String; datas : TStrings;
begin at := 'AT' + chr(13) + chr(10);
ComPort.WriteStr(at); at := 'AT+CMGF=1' + chr(13) + chr(10);
ComPort.WriteStr(at);
end;
Código Delphi
[-]procedure TForm1.ComPortRxChar(sender: TObject);
varStr: string;
begin
ComPort.ReadStr(Str, Count);
if Str = 'XXXX' then
else if Str = 'YYY' then
else if Str = 'ZZZ' then
end;
Existen otros metodos de lectura, deberas de leer el archivo de ayuda que viene con el componenteEspero te sirva de algo lo que te comento.