+6 votos
446 visitas

Tem como converter um .DFM com caracteres especiais (binário) para texto?

No Delphi 7, temos alguns formulários cujo o arquivo DFM contém diversos caracteres especiais (binário) diferentemente do modo padrão que é apenas texto.

Este modo binário dificulta bastante a comparação e merges de fontes DFM.

Tem como converter esse DFM binário para texto novamente?

Trecho do DFM binário:

ParentFont    TLabel¬lbl2 Left ð Top   Width Y Height  Caption  Qtde Documentos:  TBPanel
pnlSuperior Left   Top   Width    Height   Align alTop
BevelOuter bvNone TabOrder   SkinData.CustomFont	 SkinData.SkinSection  MENUITEM Gradient  
TBennerBtnbtnSair Left   Top   Width   Height   Hint )   Sair|Sair do Formulário - Tecla <Alt+F4>Options

 

por (632 pontos)
editado por | 446 visitas

1 Resposta

+3 votos
Melhor resposta

Encontrei o artigo abaixo no StackOverflow que mostra uma solução:

http://stackoverflow.com/questions/842879/does-delphi-sometimes-revert-text-form-files-dfm-to-binary-format

Testado e Aprovado !

Resumo:

- Abrir Projeto (Tive que abrir o projeto pois estava apresentando algumas mensagens de dependências de outros formulários)

- Abrir Formulário

- Clicar com o Direito sobre o Formulário (sobre qualquer componente visual mesmo)

- Selecionar “Text DFM”

- Salvar (CTRL+S)

Mesmo Trecho do DFM, porém no modo texto:


    ParentFont = False
  end
  object lbl2: TLabel
    Left = 3
    Top = 3
    Width = 89
    Height = 13
    Caption = 'Qtde Documentos:'
  end
  object pnlSuperior: TBPanel
    Left = 0
    Top = 0
    Width = 1044
    Height = 25
    Align = alTop
    BevelOuter = bvNone
    TabOrder = 0
    SkinData.CustomFont = True
    SkinData.SkinSection = 'MENUITEM'
    Gradient = False
    object btnSair: TBennerBtn
      Left = 0
      Top = 0
      Width = 25
      Height = 25
      Hint = 'Sair|Sair do Formul'#225'rio - Tecla <Alt+F4>'
      Options 

 

por (632 pontos)
selecionada por
Melhores Aug 2025
    200 pontos
    Melhores 2025 Jul 28 - Aug 03
    1. Larson

      156 Pontos

    2. danilo.pereira

      96 Pontos

    3. danilo.pereira

      96 Pontos

    4. danilo.pereira

      96 Pontos

    5. luciano.fronza

      61 Pontos

    6. luciano.fronza

      61 Pontos

    7. luciano.fronza

      61 Pontos

    8. diuari.molinari

      52 Pontos

    9. diuari.molinari

      51 Pontos

    10. diuari.molinari

      51 Pontos

    517 perguntas
    566 respostas
    389 comentários
    704 usuários