Os arquivos .DFM no Delphi são arquivos que mantem as informações dos componentes presentes em cada form. Informações como posicionamento dos componentes, tamanho, valor das propriedades, etc. Esses arquivos eram no início binários e em certo ponto da evolução do Delphi, ele começou a suportar estes arquivos em texto puro.

Por que isso é bom? Isso é ótimo na verdade para sistemas de controle de versão. Se tenho um form com 100 componentes o DFM vai ficar gigante, com centenas de linhas. Se eu mudo apenas um componente de lugar no form, mesmo que seja um componente não visual, o DFM é atualizado. Em casos como esse, apenas uma ou duas linhas do DFM são alteradas. Se ele estiver no formato texto, os sistemas de controle de versão mais inteligentes como o SubVersion armazenam apenas as modificações realizadas de uma revisão para outra, ou seja, uma ou duas linhas. Se o arquivo é binário, ele não consegue comparar, e tem que copiar novamente o arquivo inteiro para seu repositório. Deu pra imaginar o tamanho da economia, não?

Mas outra grande vantagem é que as versões do seu DFM também poderão ser comparadas por softwares que comparam código fonte, e você poderá ver com facilidade as mudanças em propriedades dos seus componentes de uma versão para outra.

Resumindo, escrevi tudo isso só pra falar que hoje descobri que um utilitário que acompanha o Delphi que converte arquivos DFM. Tando de binário para texto, como ao contrário. Eu tinha alguns forms ainda com DFM binário. Geralmente estes forms vem de versões antigas do Delphi, que vamos migrando, e converti todos em uma tacada só:

convert -t -i -s *.dfm

Esse código converte todos os arquivos .dfm para texto, a partir do diretório que você estiver e todos os subdiretórios. Caso queira apenas no diretório atual, remova o “-s”.

Mas atenção, se você converter seus forms para texto não conseguirá mais abrí-lo em versões do Delphi que não suportam isso. Não me lembro em qual versão esse recurso foi introduzido, portanto, saiba o que está fazendo.

Além disso, para garantir que seus novos forms são criados em texto, no Delphi 7 verifique a opção em Tools -> Environment Options -> Designer -> New forms as text. No Delphi 2005 em Tools -> Options -> VCL Designer.