Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

hints-warnings

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

HintsWarnings

Exemplo mínimo em Delphi/VCL mostrando como eliminar hints e warnings do compilador — e por que isso importa.

O problema

Um build "Compile successful" com dezenas de hints e warnings vira ruído: o dev para de ler a janela de mensagens, e o bug mora exatamente ali.

delphi
// Antes — [dcc32 Warning] W1036: Return value of function 'Desconto' might be undefined
function TfrmPrincipal.Desconto(pValor: Currency): Currency;
begin
  if pValor > 100 then
    Result := pValor * 0.9;  // e se pValor <= 100? Result = lixo de pilha
end;

Result não inicializado retorna lixo de pilha, passa em todos os testes felizes e explode em produção com um valor fora do if.

A correção

delphi
function TfrmPrincipal.Desconto(pValor: Currency): Currency;
begin
  Result := pValor;           // default antes do if
  if pValor > 100 then
    Result := pValor * 0.9;
end;

Result inicializado antes do if elimina o W1036 e torna o comportamento explícito para todos os caminhos.

Estrutura

  • HintsWarnings.dpr — projeto principal (VCL Forms Application)
  • uPrincipal.pas / uPrincipal.dfm — formulário com o exemplo (TfrmPrincipal.Desconto)

Como rodar

Abra HintsWarnings.dproj no Delphi/RAD Studio e compile (F9). O projeto compila sem nenhum hint ou warning.