cs_phoenyx
Messages postés31Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention 8 mars 2007
-
23 août 2005 à 10:36
cs_phoenyx
Messages postés31Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention 8 mars 2007
-
25 août 2005 à 11:23
bonjour à tous,
j'ai un frame dans un paquet d'execution que je voudrais instancier dans mon appli.
je charge le bpl (apparement pas de problème) mais à la récupération de la class elle est introuvable.
procedure TForm1.FormCreate(Sender: TObject);
var
MaClasse: TPersistentClass;
Frame: TFrame;
begin
Module := LoadPackage('TestPlugin.bpl'); //chargement du paquet
if Module = 0 then
raise Exception.Create('Package inconnu');
MaClasse := GetClass('TCustomPluginFrame'); //récupération de la classe
if MaClasse = nil then
raise Exception.Create('Classe non trouvée');
Frame := TFrame(MaClasse).Create(Self); //instanciation du frame
Frame.Parent := Self;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnloadPackage(Module); //libération du paquet
end;
end.
<HR>
GetClass me renvoie nil alors qu'à priori TCustomPluginFrame est enregistré au chargement du paquet.
quel est le problème ?
à terme j'aurais une classe générique connue de mon appli, et N classes dérivant de cette dernière que je voudrais charger quand j'en ai besoin. Peut-être que la méthode des paquet n'est pas appropriée.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 24 août 2005 à 23:02
A priori, il ne manque rien. Mais...
Jette donc un oeil sur cette page web : Dynamic packages with Delphi et vérifie bien chaque point par rapport à ton projet et reviens nous dire ce qu'il manquait pour que ça fonctionne.
<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
cs_phoenyx
Messages postés31Date d'inscriptionvendredi 11 octobre 2002StatutMembreDernière intervention 8 mars 2007 25 août 2005 à 11:23
c'est bon j'ai trouvé le détail qui change tout.
mes sources étaient bonnes, à optimiser bien sûr, mais fonctionnelles.
c'étaient les options du projet qui n'étaient pas bonnes : l'appli utilisatrice du plugin doit utiliser uniquement des paquets d'exécution (projet\options\paquets\construire avec les paquets d'exécution)