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

C++Builder Discussion :

Fichier *dfm non chargeable, pourquoi ?


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    481
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 481
    Par d�faut Fichier *dfm non chargeable, pourquoi ?
    Bonjour,
    j'ai �crit des programmes avec des versions ant�rieures de C++ Builder.
    Actuellement j'utilise la version XE6.

    J'ai constat� que pour certains de ces anciennes sources des programmes la fen�tre o� sont visibles les diff�rents composants, TButton, TLabel, etc� n'apparaissait pas.
    Cela n'emp�chait pas la compilation, mais il est �videmment impossible de faire certaines modifications.

    J'ai remarqu� que cela se produisait lorsqu'il y avait dans le fichier *.dfm, qui est un fichier du type "Texte", des instructions telles que :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    Picture.Data = {
          055449636F6E0000010008003030100001000400680600008600000020201000
          01000400E8020000EE060000101010000100040028010000D609000030300000
          01000800A80E0000FE0A00002020000001000800A8080000A619000010100000
          ..........}
    Est-il possible de rem�dier � cet �tat de fait ?

    Merci

  2. #2
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Je travaille avec xe et xe6

    Pour moi c'est tr�s difficile � r�pondre parce que
    • S'il y a pas une parfaite concordance entre les donn�es du DFM et les attributs publi�s, une exception est lanc�e � la cr�ation de la form (pendant l�ex�cution)
    • S'il y a des propri�t�s qui ne sont pas correctes pour un ui (bouton, label, ....), C++ Builder te demande pendant la sauvegarde [ou � l'ouverture] de ta form de les supprimer ou de les conserver
    • Pour ce genre d'ui natif (bouton, label, ....), je ne pense pas qu'Embarcadero ait rajout� des propri�t�s de visibilit� depuis: il y a d�j� enabled, visible et transparent


    Et j'ai v�rifi�: pour une TImage tu as toujours dans le DFM Picture.Data = { ... }.

    Pour l'instant, le seul truc que je vois, c'est de refaire tous tes uis et/ ou de supprimer toutes les images (si tu penses que c'est cela qui pose probl�me)
    et �ventuellement faire une comparaison dans le DFM entre avant et maintenant (peut-�tre que soit une propri�t� a �t� �crite et pose probl�me soit une propri�t� est manquante)

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    481
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 481
    Par d�faut
    Au lancement, il y a le message :
    "Erreur � la cr�ation de la forme : S�lection incorrecte".

    Je clique sur Ok et ne s'affichent que les fichiers *cpp et *h.

    La compilation se fait correctement.

    Est-ce dans le fichier *.dfm qu'il faut, avec un �diteur de texte, supprimer les images ?

  4. #4
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Donc si l'IDE refuse de prendre ton DFM dans le projet c'est bien un probl�me de syntaxe (du moins je le pense)

    Un probl�me d'h�ritage devrait �tre signal� par l'IDE (ce sont tous les objets inherited au lieu d'object *)

    Il faudrait refaire toutes les form enti�rement Ou � moins que tu arrives � voir avec 1 ou 2 form refaites ce qui pose probl�me dans le DFM


    *:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    inherited log_in_frame_fr: Tlog_in_frame_fr
      inherited button_new_site: TJvTransparentButton
        Caption = 'Cr'#233'er un site'
      end
      inherited button_log_in: TJvTransparentButton
        Caption = 'Se Connecter'
      end
      inherited button_quit: TJvTransparentButton
        Caption = 'Quitter'
      end
    end

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    481
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 481
    Par d�faut
    Merci.
    J'ai charg� dans XE6 les copies des sources d'un programme dont les composants n'�taient pas affich�s.
    Ils ont �t� affich�s !
    J'ai ferm� XE6, l'ai relanc� et recharg� les m�mes sources.
    Les composants n'ont plus �t� affich�s !!
    Je n'y comprends plus rien�

    Lorsque j'en aurai le courage, je r��crirai le programme en ne conservant que les fichiers .cpp et .h.

  6. #6
    Membre �m�rite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par d�faut
    Citation Envoy� par Pasqualini Voir le message
    J'ai remarqu� que cela se produisait lorsqu'il y avait dans le fichier *.dfm, qui est un fichier du type "Texte", des instructions telles que :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    Picture.Data = {
          055449636F6E0000010008003030100001000400680600008600000020201000
          01000400E8020000EE060000101010000100040028010000D609000030300000
          01000800A80E0000FE0A00002020000001000800A8080000A619000010100000
          ..........}
    Le Picture.Data est un dump hexad�cimal de l'image, par exemple un BMP ou un JPEG. Mais dans ton cas il semble que ce soit un TIcon (5449636F6E = "TIcon" en hexa). Donc a priori un objet natif C++ Builder. �a me semble un peu �trange, pour peu que le format du TIcon change, �a casse la compatibilit�.

    Je te conseille d'essayer de changer le contenu du Picture.Data par un objet standard, par exemple un petit fichier BMP (tu te cr�e une TForm bidon avec juste un objet graphique et une BMP, et tu copie-colles la partie hexa dans la Form que tu n'arrives pas � charger).

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    481
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 481
    Par d�faut
    Merci pour cette suggestion.
    Je vais essayer.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 10/12/2005, 13h40
  2. Fichiers .asp non reconnus
    Par zorba49 dans le forum ASP
    R�ponses: 5
    Dernier message: 13/09/2005, 09h49
  3. probleme avec un fichier .dfm
    Par lestat1859 dans le forum C++Builder
    R�ponses: 5
    Dernier message: 31/08/2005, 18h02
  4. Fichier orapwd non valide
    Par ariesnojf dans le forum Oracle
    R�ponses: 3
    Dernier message: 12/07/2005, 19h36
  5. Prob fichier necessaire non install�...help pliz!!!
    Par Prima.broots dans le forum DirectX
    R�ponses: 5
    Dernier message: 16/01/2005, 14h57

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