Hola!
1. No veo el porque en cada iteracion del ciclo for asignas puerto baudios y abres el puerto. Creo que eso lo debes de hacer antes de entrar en el ciclo for.
Código Delphi
[-] ComPort.Port:='COM12';
ComPort.BaudRate:=brCustom;
ComPort.Open
Application.Processmessages;
for Wvez := 1 to 50 do
begin
ComPort.WriteStr('1');
ComPort.ReadStr(Str, 3000);
Memo1.Text := Str;
end;
2. ¿Has visto los ejemplos que tre el comport? Ahi te muestra que deberias de usar el evento OnRxChar para capturar los datos entrantes:
Código Delphi
[-]procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
ComPort.ReadStr(Str, Count);
Memo.Text := Memo.Text + Str;
end;
3. Por supuesto esto ultimo lo deberas adaptar a tus nececidades.
Saludos!!