IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

.dfm corrompu en XE


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 29
    Points
    29
    Par défaut .dfm corrompu en XE
    Bonjour, je converti une application Delphi 5 à XE et là parmi les 118 .dfm il y a en 3 que je ne peux pas lire en XE pourtant ils sont toujours lisibles en D5.
    Voici un exemple de dfm ouvert avec Notepad. C'est tout bousiller mais cela ouvre en D5 mais en XE impossible. Par contre, son .pas correspondant est valide. Les 115 autres dfm sont normaux, aucun caractère bizarre.


    ÿ
    TFMDIRSELECTDLG 0w TPF0TfmDirSelectDlgfmDirSelectDlgLeftaTopÉ
    ActiveControlDirectoryListBox1 BorderStylebsDialogCaptionSélectionner un répertoire ClientHeight> ClientWidthColor clBtnFace
    ParentFont OldCreateOrder PositionpoDesktopCenterShowHint OnCreate
    FormCreate
    PixelsPerInch`
    TextHeight
    TLabelLabel2LeftTopWidthJHeight
    CaptionRépertoire cible TPanelPanel1LeftTopWidth¦ HeightHintRépertoire cibleTabOrder TLabelLabel1LeftTopWidth~Height
    CaptionC:\Dev\Fmrq2000\Source TButtonOKBtnLeftÅ TopWidthKHeightHint&Sélection du nouveau répertoire cible.Caption << --- OKDefault ModalResultTabOrder OnClick
    OKBtnClick TButton CancelBtnLeftÅ Top¢ WidthKHeightHint+Annule la sélection d'un nouveau répertoireCancel CaptionCancel ModalResultTabOrderOnClickCancelBtnClick TDirectoryListBoxDirectoryListBox1LeftTop1Width¦ Heightä DirLabelLabel1IntegralHeight
    ItemHeightTabOrder TDriveComboBoxDriveComboBox1LeftTopWidth¨ HeightHintSélection du disque.( Lecteur )DirListDirectoryListBox1TabOrder

  2. #2
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    essaye de l'ouvrir avec D5, et cocher "mode texte" dans le click droit sur la fiche (il y a ca dans d7 en tout cas)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 29
    Points
    29
    Par défaut D5
    En mode texte, tout est beau en D5.
    Je peux le sauver sans problème dans son .dfm
    mais le .dfm à l'air du fichier du premier message.

    En mode texte sous D5, voici ce que je vois et c'est tout à fait normal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    object fmDirSelectDlg: TfmDirSelectDlg
      Left = 353
      Top = 201
      ActiveControl = DirectoryListBox1
      BorderStyle = bsDialog
      Caption = 'Sélectionner un répertoire'
      ClientHeight = 318
      ClientWidth = 285
      Color = clBtnFace
      ParentFont = True
      OldCreateOrder = True
      Position = poDesktopCenter
      ShowHint = True
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
      object Label2: TLabel
        Left = 19
        Top = 6
        Width = 74
        Height = 13
        Caption = 'Répertoire cible'
      end
      object Panel1: TPanel
        Left = 16
        Top = 23
        Width = 166
        Height = 23
        Hint = 'Répertoire cible'
        TabOrder = 4
        object Label1: TLabel
          Left = 5
          Top = 5
          Width = 126
          Height = 13
          Caption = 'C:\Dev\Fmrq2000\Source'
        end
      end
      object OKBtn: TButton
        Left = 197
        Top = 22
        Width = 75
        Height = 25
        Hint = 'Sélection du nouveau répertoire cible.'
        Caption = '<< --- OK'
        Default = True
        ModalResult = 1
        TabOrder = 0
        OnClick = OKBtnClick
      end
      object CancelBtn: TButton
        Left = 197
        Top = 162
        Width = 75
        Height = 25
        Hint = 'Annule la sélection d'#39'un nouveau répertoire'
        Cancel = True
        Caption = 'Cancel'
        ModalResult = 2
        TabOrder = 1
        OnClick = CancelBtnClick
      end
      object DirectoryListBox1: TDirectoryListBox
        Left = 15
        Top = 49
        Width = 166
        Height = 228
        DirLabel = Label1
        IntegralHeight = True
        ItemHeight = 16
        TabOrder = 2
      end
      object DriveComboBox1: TDriveComboBox
        Left = 15
        Top = 279
        Width = 168
        Height = 19
        Hint = 'Sélection du disque.( Lecteur )'
        DirList = DirectoryListBox1
        TabOrder = 3
      end
      object Kill: TButton
        Left = 192
        Top = 232
        Width = 75
        Height = 25
        Caption = 'Kill'
        TabOrder = 5
      end
    end

  4. #4
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    sur D7, j'ai :
    - voir comme texte qui affiche dans delphi le dfm en mode texte
    - DFM texte (cochable) qui enregistre en mode texte ou en mode binaire. C'est celui-ci qui doit être coché

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 458
    Points : 24 870
    Points
    24 870
    Par défaut
    Attention, il ne faut pas confondre ALT+F12 pour voir le DFM en Mode Texte et sa sauvegarde en Mode Texte (case à cocher en bas du Menu Contextuel)
    C'est trompeur ! c'est bien deux choses distinctes comme le précise Guillemouze

    Vérifie avec Notepad si le fichier DFM est bien en Texte et non en binaire, le format par Défaut dans les (très très) anciennes versions

    Je te confirme que ta DFM est la même, il y a juste une en version texte et l'autre en binaire, d'ailleurs, c'est la version binaire qui stocké comme ressource dans l'exe !
    Et ce n'est absolument pas "bousiller", tu as même les fonctions ObjectTextToBinary et BinaryToObjectText qui permet de passer une DFM d'un format à un autre ainsi que ObjectResourceToText et ObjectTextToResource qui gère l'entête de la ressource


    En plus ça ce comprend parfaitement !
    ÿ.. = FF 0A 00 = Toujours pareil dans la Ressource (délimiteur?)
    TFMDIRSELECTDLG
    . = 0 = Zéro Terminal pour strlen indiquant la fin de TFMDIRSELECTDLG
    0 = 30 10 = Toujours pareil
    w..= 77 04 00 00 = 477h = 1143d = longueur de la DFM de TPF0 à la fin
    TPF0
    = 0F = 15 = longueur de la chaine TfmDirSelectDlg
    TfmDirSelectDlg
    = 0E = 14 = longueur de la chaine fmDirSelectDlg
    fmDirSelectDlg
     = 04 = 4 = longueur de la chaine Left
    Left
     = 03 = type de valeur vaInt16
    a = 61 01 = 161h = 353d, la valeur de Left
    = 03 = 3 = longueur de la chaine Top
    Top
    = 03 = type de valeur vaInt16
    É. = C9 00 = C9h = 201d, la valeur de Top
    ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 29
    Points
    29
    Par défaut D5
    Et vous avez tout à fait raison.
    J'ai coché Text DFM et voilà, plus de version binaire.

    Delphi XE se plaignait d'une version 16 bits du fichier .dfm, voilà pourquoi. ccool:

    Merci.

    Avez-vous essayé le nouveau F1 de XE.
    Je trouve cela une rétrogradation par rapport à D5 dans sa façon de fonctionner et l'aide est incomplète.
    Pour le reste XE est extra.

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 458
    Points : 24 870
    Points
    24 870
    Par défaut
    Et encore, l'aide de XE est la meilleure depuis 2006 ...
    Mais, je confirme qu'il faut s'habituer à son fonctionnement particulier (et là la RAM consommé, plus que la RAD Studio ) moins pratique qu'un bon vieux HLP, assez incomplet (je suis sous C++Builder, c'est la misère certaines doc), pour IntraWeb l'aide est fournie mais pas installée pour une simple raispon qu'elle n'est absolument pas terminée (autant lire le code on comprend mieux)

    Pense à la Doc Embarcadero Wiki

    Parfois, j'ouvre aussi le HLP de BCB6 lorsque la documentation d'une fonction se limite à son prototype dans l'aide 2007
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Parfois, j'ouvre aussi le HLP de BCB6 lorsque la documentation d'une fonction se limite à son prototype dans l'aide 2007
    Pareil.
    Je m'ouvre un D6 rien que pour l'aide.

    Ils auraient pu faire l'effort de la recopier dans les versions supérieures.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/10/2004, 18h14
  2. fichier corrompu ! comment réparer ?
    Par Jean Bonnisme dans le forum Access
    Réponses: 10
    Dernier message: 11/10/2004, 11h19
  3. [DFM] Creation manuelle
    Par Clorish dans le forum Composants VCL
    Réponses: 5
    Dernier message: 18/06/2004, 13h52
  4. Débogage corrompu par les optimisations du compilateur
    Par petitcoucou31 dans le forum EDI
    Réponses: 6
    Dernier message: 17/12/2003, 00h30
  5. Réponses: 2
    Dernier message: 29/10/2003, 23h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo