Você está trabalhando em um projeto no seu bom e velho Delphi, e sem qualquer cerimônia a IDE emite: “Access violation at address <...> in module ‘DFWEDIT.DLL’. Read of address <...>” ao abrir uma unit do projeto. Você pesquisa e descobre que esta biblioteca é do próprio Delphi. Fecha e reabre a IDE. Nada. Reinicia o micro. Nada. E agora?

Não sei exatamente do que se trata, mas os meus passos para fazer o problema aparecer, foram:

  • Criar um projeto com Delphi 5 Professional.
  • Abrir o mesmo projeto com Turbo Delphi Explorer.
  • Resolver alguns erros de compilação, deixar o código compatível com os dois compiladores, etc., etc. e salvar o projeto.
  • Voltar ao Delphi 5, reabrir o mesmo projeto e tentar abrir uma das units que foram abertas no Turbo Delphi.

Pronto. Se você teve sorte, ao abrir a unit você viu algo como isto aqui:

AV DFWEDIT.DLL

E depois disto a IDE não presta mais, você mal consegue fechá-la sem apelar para as vias de fato.

Este erro ocorre devido a um corrompimento do arquivo NomeDoGrupo.dsk, que é gravado na mesma pasta do .bpg, e este Arquivo é lido pela IDE para compor o menu File | Reopen. Porém, não adianta apenas remover o arquivo .dsk, a IDE faz um merge deste arquivo com informações do registro, é necessário também apagar as entradas “File*” da chave “HKEY_CURRENT_USER\Software\Borland\Delphi\5.0\Closed Files”. É uma chave do usuário, não precisa ter privilégio de administrador. Feito isto, basta fechar e reabrir a IDE para o erro desaparecer. Talvez problema semelhante possa ocorrer com outras versões antigas, então fica a dica.