No Capitulo 4 do livro Código Limpo do Robert C. Martins começa com a seguinte frase: "Não insira comentários num código ruim, reescreva-o" - Brian W. kernighan e P.J. Plaugher, fazendo uso das palavras de Martins, comentários são maus necessários, pois ainda não conseguimos expressar nossa intenção de uma maneira que não precisaríamos de comentários.

No Delphi, existe duas maneira de comentar. Comentários em bloco e linhas de comentários, comentário de linhas utilizamos o símbolo "//" desta maneira o compilador ignora toda a linha a partir de onde se encontra o símbolo.
var i, j: integer
...
i: = 0; / / j: = 5
...
// Showmensage("Ola Mundo");
Já nos comentários em blocos existe duas maneiras utilizando os símbolos {} e (* *), lembrando que devemos utilizar em pares os símbolos. Porém muitas vezes temos alguns problemas com os grandes blocos de comentários, pois o Delphi não permite alinhar os mesmos. Além disso, muitas das vezes encontramos no nosso código diretivas de compilação que começam com "{$" e podem tem comentários no meio de nosso código, sendo que o Delphi quando achar o primeiro símbolo final } ou *) ele acaba fechando o seu comentário, por isso devemos ter muito cuidado ao comentar nossos códigos.

Porém a minha intenção não é dizer as formas que o Delphi tem de comentar um código. Os comentários e para compensar o nosso fracasso em expressar no código, além disso muitas das vezes os comentários acabam ficando obsoletos e acaba mentindo a sua intenção para que foi criada, sem contar o trabalho que aumenta nas manutenção no dia a dia de desenvolvimento.

Os comentários são utilizados de maneira geral para compensar um código confuso ou desorganizado, ao invés de usar um comentário explique-se no código.
    //Verifica se o funcionário tem direito a todos os benefícios
    if ((empregado.flags in [Horly_flag]) or (empregado.idade >65)) then


podemos refactorar para um código mais elegante
    //Verifica se o funcionário tem direito a todos os benefícios
    if empregado.temtodosbeneficios then
Precisamos só de uma olhada para entender a intenção do código, e muitos dos casos  é simplesmente criar um função com o nome que diga ou expresse a sua intenção.

Podemos classificar os comentários como informativos, esclarecimentos, legais, alerta, TODO. Os comentários informativos podem ser práticos na maioria das vezes, porém sempre que possível é melhor usar o nome da função para transmitir a informação. Há casos que temos de informar por exemplo quando temos uma expressão regular é um bom lugar para colocar um comentário informativo.
    //Formato igual  a HH:MM:SS
      AValor := regex.parser("\\d*:\\d*:\\d*");
Quase todas as IDES existem o "TODO" (Fazer) e um comentário no formato  // TODO:. No caso os TODO pode expressar algo que deverá ser feito ou revisado.
  begin
  // TODO -oMarcelo Fernandes -cTesteUnitario: Setup method call parameters
    
  // TODO: Validate method results
  end;
No Delphi você pode ver todos os seus TODO pelo menu VIEW / TO-DO List, além de usar as tags -oAUTOR -cCategoria.

Existes alguns tipos de comentários que devemos evitar, como os comentários redundantes, enganadores, longos, de posição e o próprio código comentado, mas para isso vou deixar você leitor dar uma espiada no capítulo 4 do livro código limpo como evitar estes tipos de comentários.