Pesquisar na Comunidade
Showing results for tags 'Compilador'.
Encontrado 1 registro
-
Warnings Do Delphi Nas Units Do Acbr
um tópico no fórum postou Lucas Rutkoski Dúvidas Gerais sobre o ACBr
Bom dia! Primeiramente gostaria de me apresentar e já agradecer a comunidade que criou este pacote de componentes, pois tem sido muito úteis na empresa onde trabalho. Aqui, sempre que encontrávamos algum ajuste ou melhoria que podia ser feito, meus colegas postavam no fórum e verificavam com vocês, mas agora resolvi vir aqui e dar minhas ideias também. Bom, eu sempre fui meio "nazista" com os avisos e mensagens do compilador nos projetos que participei, pois sempre acreditei que se existe um warning, pode existir um erro, e é por isto que crio este tópico para tentarmos diminuir estes avisos. Vou listar abaixo por unit e método a mensagem que encontrei e como eu a corrigi. Tentei anexar os patchs do Subversion no tópico, mas o fórum me avisou que não tenho permissão para anexar este tipo de arquivo. Se alguém puder liberar isto, posso encaminhar pra vocês a minha solução. Unit: ACBrEFDBlocos Método: function StrToCodVer(AValue: string): TACBrVersaoLeiaute; Mensagem: [DCC Warning] ACBrEFDBlocos.pas(450): W1035 Return value of function 'StrToCodVer' might be undefined Solução: O warning acima é mostrado porque o compilador não consegue encontrar um "Result" padrão para quando o parâmetro "AValue" do método não for um dos já esperados nos IFs da rotina. Teríamos então de criar um retorno padrão ou então levantar uma exceção para o programador, como eu fiz no patch anexo. Unit: ACBrUtil Método: function FlushFileToDisk( sFile: string): boolean; Mensagem: [DCC Warning] ACBrUtil.pas(2006): W1044 Suspicious typecast of string to PWideChar Solução: Aqui o compilador não tem certeza de como converter a variável "filenome" de "String" para "PWideChar" diretamente, o que pode fazer com que o cast implícito feito por ele faça a string perder dados. A solução aqui seria explicitarmos o cast de "String" para "PWideChar" da seguinte forma: String->WideString->PWideChar. Unit: ACBrEFDBloco_1_Class Método: function TBloco_1.Registro1922New: TRegistro1922; Mensagem: [DCC Warning] ACBrEFDBloco_1_Class.pas(1264): W1036 Variable 'U1921Count' might not have been initialized Solução: Aqui houve um pequeno equivoco na variável utilizada para acessar o último item do registro 1920, pois estamos utilizando a variável que guarda o índice do último item do Regitro 1921, que ainda não foi preenchida. E era isto! Peço desculpas se isto já foi postado por alguém ou se criei o tópico no lugar errado e espero ter sido útil!- 8 replies
-
- ACBrEFDBlocos
- Warning
-
(e 1 mais)
Tags: