Je développe un package de composants enregistrés par IDE, dont la plupart sont dérivés d'une classe TFrame de base. Il existe également diverses formes de dialogue personnalisées appelées par ces composants, incluses dans le package. Je travaille dans Delphi 2007.Ajout de formulaires et de cadres aux packages
Je remarque que parfois les unités d'image et de formulaire, qui ont normalement un fichier DFM associé, ne montrent pas toujours le fichier DFM "dessous" (accessible via la petite arborescence [+] nœud expandeur) en dessous d'eux. Si j'ajoute un fichier PAS basé sur un formulaire existant, par exemple, en cliquant avec le bouton droit sur le projet BPL (dans le Gestionnaire de projets) -> Ajouter, il n'affiche pas le fichier DFM dans la liste.
Si je ajoute Nouveau et que vous créez un nouveau formulaire ou une nouvelle unité de cadre dans le projet, il s'affiche en tant qu'élément imbriqué typique à deux fichiers dans le Gestionnaire de projets. Il s'affiche également de cette façon si je fais glisser un formulaire existant d'un autre projet du groupe de projets vers ce projet BPL en question.
Cela semble être cohérent, et je préfère les deux fichiers montrant quand l'unité est un cadre ou un formulaire.
Cela indique-t-il quelque chose de mal dans le fichier de projet? Est-ce que j'ajoute incorrectement des formulaires/cadres existants à ce paquet? Si oui, comment dois-je ajouter des unités de formulaire/cadre existantes pour que les deux fichiers apparaissent dans la liste du gestionnaire de projet?
* MISE À JOUR *
De la suggestion de Alen ci-dessous:
J'ai essayé d'ajouter la directive {$ R * .dfm} à l'unité de la forme, et il n'a pas forcé le fichier DFM à apparaître lors de l'ajout à mon package/projet BPL. Ajouter {$ R * .dfm} au fichier projet lui-même (ce que je ne pense pas être ce que vous vouliez dire, mais je pensais l'essayer) ne fonctionnait pas non plus. Cette technique fonctionne-t-elle uniquement avec les projets EXE?
Peut-être (probablement) lié, en essayant de construire avec cette directive dans les lieux me donne ceci:
[Erreur DCC] E2161 Avertissement: ressource en double: Type 10 (RCDATA), ID TTESTTREEVIEW; Fichier E: \ Projects \ MyApp \ Components \ TTestTreeViewFrame.dfm ressource conservée; fichier La ressource E: \ Projects \ MyApp \ Components \ TTestTreeViewFrame.dfm a été supprimée.
"Keping" et "jeter" le même fichier ??
plus tard: Il semble que cette question « ressource en double » pourrait être liée à this. Pas certain, mais au moins dans un cas les deux se sont produits simultanément.
J'ai essayé moi-même les suggestions Allen Bauers/Vegars sur Turbo Delphi 2006, et cela fonctionne. Vous devez ajouter {Form #} après la ligne dans la section contient. Après avoir fermé votre bpl et l'avoir rouvert, le fichier .dfm apparaît dans le gestionnaire de paquets. –