Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2730 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Prezados do Projeto ACBR,

Migrei o projeto do Delphi 7 p/ o Delphi XE3.
Ao fazer o Build, percebi que são listados vários warnings nas units do ACBR.
Ex:

[dcc32 Warning] pcnGerador.pas(374): W1057 Implicit string cast from 'AnsiString' to 'string'

[dcc32 Warning] pcnGerador.pas(624): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString'

[dcc32 Warning] pnfsNFSeR.pas(976): W1050 WideChar reduced to byte char in set expressions.  Consider using 'CharInSet' function in 'SysUtils' unit.

Isso pode afetar os dados?
Grata

  • Moderadores
Postado
  Em 07/11/2017 at 13:01, Alice disse:

Prezados do Projeto ACBR,

Migrei o projeto do Delphi 7 p/ o Delphi XE3.
Ao fazer o Build, percebi que são listados vários warnings nas units do ACBR.
Ex:

[dcc32 Warning] pcnGerador.pas(374): W1057 Implicit string cast from 'AnsiString' to 'string'

[dcc32 Warning] pcnGerador.pas(624): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString'

[dcc32 Warning] pnfsNFSeR.pas(976): W1050 WideChar reduced to byte char in set expressions.  Consider using 'CharInSet' function in 'SysUtils' unit.

Isso pode afetar os dados?
Grata

Expandir  

Se usar o instalador ele tem uma opção que basta marcar ou desmarcar.

  Em 07/11/2017 at 15:44, Daniel Simoes disse:

Achei...

// Para Remover Warnings de CAST causados por WideString/String/AnsiString, descomente a linha abaixo. (Apenas Delphi)
{.$DEFINE REMOVE_CAST_WARN}     

 

Expandir  

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: juliomar_m@yahoo.com.br
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 1 mês depois ...
Postado

No ACBr.inc adicionei mais uma diretiva de compilação, para desativar warnings de funções exclusivas de uma determinada plataforma

{$IFDEF REMOVE_CAST_WARN}
  {$WARN IMPLICIT_STRING_CAST OFF}
  {$WARN IMPLICIT_STRING_CAST_LOSS OFF}
  {$WARN SYMBOL_DEPRECATED OFF}
  {$WARN SYMBOL_PLATFORM OFF}
{$ENDIF}

  • Fundadores
Postado

Prefiro não acatar algumas coisas, pois poderiam causar Warnings em FPC... Como por exemplo a atribuição de "Result",  no inicio dos métodos de ACBrSAT....

o que faz ?

{$WARN DUPLICATE_CTOR_DTOR OFF}

 

Esse tipo de notação de Unit não é aceita por D7 ou FPC

 System.Contnrs

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
  Em 12/12/2017 at 13:34, Daniel Simoes disse:

Prefiro não acatar algumas coisas, pois poderiam causar Warnings em FPC... Como por exemplo a atribuição de "Result",  no inicio dos métodos de ACBrSAT....

o que faz ?

{$WARN DUPLICATE_CTOR_DTOR OFF}

 

Esse tipo de notação de Unit não é aceita por D7 ou FPC

 System.Contnrs

Expandir  

Olá Daniel.

Sobre o result, se atrubuir um valor que não será usado, antes do result receber outro valor o delphi gera warnings, por este motivo que comentei as atribuições dos results no inicio do método.

sobre {$WARN DUPLICATE_CTOR_DTOR OFF}, no delphi quando tem 2 constructor com nomes diferentes e parametros iguais isso gera um warning, que é o caso da unit ACBrDFeException, acredito que poderia incluir no ACBr.inc como abaixo

{$IFDEF REMOVE_CAST_WARN}
  {$WARN IMPLICIT_STRING_CAST OFF}
  {$WARN IMPLICIT_STRING_CAST_LOSS OFF}
  {$WARN SYMBOL_DEPRECATED OFF}
  {$WARN SYMBOL_PLATFORM OFF}
  {$WARN DUPLICATE_CTOR_DTOR OFF}
{$ENDIF}

 

att, abraços

sobre o System.Contnrs o delphi deve ter colocado automaticamente, pois nao me lembro de ter adicionado esta unit

 

  • Fundadores
Postado
  Em 12/12/2017 at 13:53, Emerson Teixeira disse:

Sobre o result, se atrubuir um valor que não será usado, antes do result receber outro valor o delphi gera warnings, por este motivo que comentei as atribuições dos results no inicio do método.

Expandir  

Acredito que ele gere "Hints", correto ?  Hints são opcionais... eu acho que o código fica mais seguro e legível, com a atribuição de um Result no inicio do método...

As modificações na Synapse, preciso avaliar com mais calma... tento manter ela, o mais possível perto dos fontes originais... (embora a tempos o autor original, não faça melhorias nos fontes)

  Em 12/12/2017 at 13:53, Emerson Teixeira disse:

sobre {$WARN DUPLICATE_CTOR_DTOR OFF}, no delphi quando tem 2 constructor com nomes diferentes e parametros iguais isso gera um warning, que é o caso da unit ACBrDFeException, acredito que poderia incluir no ACBr.inc como abaixo

Expandir  

Em qual método isso ocorre ? Como é o construtor original, em seu Delphi ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

 

  Em 12/12/2017 at 13:56, Daniel Simoes disse:

Acredito que ele gere "Hints", correto ? 

Expandir  

Sim...

 

  Em 12/12/2017 at 13:56, Daniel Simoes disse:

Hints são opcionais... eu acho que o código fica mais seguro e legível, com a atribuição de um Result no inicio do método...

Expandir  

por mim sem problemas... mas o intuito seria remover hints e warnings na medida do possível rsrs..

 

  Em 12/12/2017 at 13:56, Daniel Simoes disse:

sobre {$WARN DUPLICATE_CTOR_DTOR OFF}

Expandir  

image.png.120ccbff07b0b6e76a4377ecf3328dca.png

  Em 12/12/2017 at 13:56, Daniel Simoes disse:

Em qual método isso ocorre ?

Expandir  

CreateDef.

 

  Em 12/12/2017 at 13:56, Daniel Simoes disse:

Como é o construtor original, em seu Delphi ?

Expandir  

Create

 

note que o warning ocorre apenas quando compilo para 64 bits...

att

  • 2 semanas depois ...
  • Fundadores
Postado

Devemos mesmo desligar tudo isso ?

  {$WARN USE_BEFORE_DEF OFF}        	// quando atribui valor à uma variável e este não é usado no decorrer da function/procedure
  {$WARN TYPEINFO_IMPLICITLY_ADDED OFF}	// http://docwiki.embarcadero.com/RADStudio/Tokyo/en/W1055_Published_caused_RTTI_($M%2B)_to_be_added_to_type_%27%25s%27_(Delphi)
  {$WARN WIDECHAR_REDUCED OFF}          // quando compara string com char ex: (if sOperacao[1] in ['A', 'B'] then) 	
  {$HINTS OFF}							// para remover hints de variáveis/funções que foram declarados e nao usados e outros hints

me parece que isso poderá ocultar alguns Hints válidos...

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Consultores
Postado
  Em 26/12/2017 at 15:48, Daniel Simoes disse:

{$HINTS OFF} // para remover hints de variáveis/funções que foram declarados e nao usados e outros hints

Expandir  

Isso nunca deveria ser aplicado. Você está desligando os hints do compilador.

Não tem sentido o time que trabalha no compilador adicionar as hints que todo mundo ignora.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado
  Em 26/12/2017 at 15:48, Daniel Simoes disse:

Devemos mesmo desligar tudo isso ?

  {$WARN USE_BEFORE_DEF OFF}        	// quando atribui valor à uma variável e este não é usado no decorrer da function/procedure
  {$WARN TYPEINFO_IMPLICITLY_ADDED OFF}	// http://docwiki.embarcadero.com/RADStudio/Tokyo/en/W1055_Published_caused_RTTI_($M%2B)_to_be_added_to_type_%27%25s%27_(Delphi)
  {$WARN WIDECHAR_REDUCED OFF}          // quando compara string com char ex: (if sOperacao[1] in ['A', 'B'] then) 	
  {$HINTS OFF}							// para remover hints de variáveis/funções que foram declarados e nao usados e outros hints

me parece que isso poderá ocultar alguns Hints válidos...

Expandir  

Olá Daniel.

isso foi apenas uma sugestão, pois você comento que não quer alterar as units de terceiros...

Acredito que estas diretivas deveriam ser incluídas no ACBr.inc  comentadas, seria opcional ativá-las (critério de cada um), ou então alterar a units onde os hints e wanings ocorrem (me disponho a fazer esta parte se for o caso).

Postado
  Em 26/12/2017 at 16:06, EMBarbosa disse:

Isso nunca deveria ser aplicado. Você está desligando os hints do compilador.

Não tem sentido o time que trabalha no compilador adicionar as hints que todo mundo ignora.

Expandir  

Ola EMBarbosa, 

concordo plenamente com você, fiz esta sugestão, pois o Daniel disse que não pretende alterar as units de terceiros, note que adicionei apenas a referência ao ACBr.inc nessas units, tentando alterar o minimo possível, mas se for o caso de alterá-las ajudarei no que for possível.

att

  • Consultores
Postado
  Em 26/12/2017 at 16:31, Emerson Teixeira disse:

Ola EMBarbosa, 

concordo plenamente com você, fiz esta sugestão, pois o Daniel disse que não pretende alterar as units de terceiros, note que adicionei apenas a referência ao ACBr.inc nessas units, tentando alterar o minimo possível, mas se for o caso de alterá-las ajudarei no que for possível.

att

Expandir  

As alterações nas units de terceiros geralmente devem ser direcionadas a eles. Por exemplo, se tem alguma sugestão no Fortes, seria melhor direcionar ao projeto Fortes. O mesmo caso para as units do projeto Synapse.

Com respeito a outras alterações e hints, a melhor maneira é analisar cada caso separadamente. Assim eu sugiro você criar um tópico diferente para analisar cada tipo de caso.

Se você postar a função em questão, qual o warning que está sendo gerado, quais as alterações sugeridas e os motivos, podemos discutir.

Depois de um caso estabelecido, outros códigos semelhantes podem ser alterados seguindo o modelo.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 2730 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.