Ir para conteúdo
  • Cadastre-se

Rafael L. Costa

Membros
  • Total de ítens

    2
  • Registro em

  • Última visita

Rafael L. Costa's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

2

Reputação

  1. Estou usando um mini-modem 3G USB da marca HUAWEI, modelo E173 com chip Tim-Beta e também estava recebendo a mensagem de erro "Error +cms 305" sempre que tentava enviar uma mensagem com mais de um caractere. E mesmo quando conseguia enviar usando apenas 1 caractere a mensagem chegava completamente em branco para o destinatário. Depois de pesquisar um pouco achei em um fórum gringo um cara explicando que esse erro ocorre dependendo do tipo do modo de envio, e que para enviar somente texto deve-se usar o comando "AT+CSCS="GSM". A partir daí foi só mudar na unit ACBRSMSClass a seguinte linha: // definir o modo de envio *************************************************** Cmd := 'AT+CSCS="GSM"'; // 'AT+CMGF=1'; Self.EnviarComando(Cmd); if not Self.ATResult then raise EACBrSMSException.Create(FALHA_INICIALIZACAO + sLineBreak + fpUltimaResposta); Depois dessa alteração funcionou perfeitamente e consegui enviar sem problemas. Não entendo muito sobre o funcionamento do SMS mas acho que poderíamos fazer uma alteração no componente para permitir selecionar o modo de envio do texto para aumentar a compatibilidade com outros modems e outros serviços de envio. Eu estou disposto a fazer essa alteração na classe, se aceitarem, ou deixo aqui a idéia para que a alteração seja feita por alguém que entenda melhor do assunto. UM abraço!
  2. Eu estava tendo o mesmo problema de foco. Tive que criar uma procedure à parte para resolver o problema, chamando essa procedure no evento OnRestauraFoco do componente ACBrTEFD. Segue o código da procedure: procedure RestauraFoco; var Form: TForm; Habilitado: Boolean; begin try Form := nil; //Verifica se já existe um form ativo na tela. if Assigned(Screen.ActiveForm) then Form := Screen.ActiveForm //Do contrário, pega o último form criado else if Assigned(Screen.Forms[Screen.FormCOunt - 1]) then Form := Screen.Forms[Screen.FormCOunt - 1]; if Assigned(Form) then begin //Verifica o estado da propriedade 'Enabled' do form Habilitado := Form.Enabled; //Habilita o form para permitir que o foco seja setado para o mesmo Form.Enabled := TRUE; //Envia o Form em questão para a frente da tela SetForeGroundWindow(Form.Handle); //Seta o foco da aplicação para o form if Form.CanFocus then Form.SetFocus; Form.Refresh; //Retorna a propriedade 'Enabled' para o estado anterior Form.Enabled := Habilitado; end; except end; end; Obs.: Eu uso a procedure no início do evento OnExibeMsg também, pra garantir que a aplicação terá foco no momento em que a mensagem for exibida.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.