begin process at 2010 03 19 05:54:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Divers

 > 

Plugin/paquet : class introuvable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Plugin/paquet : class introuvable

mardi 23 août 2005 à 10:36:52 | Plugin/paquet : class introuvable

phoenyx

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.



Sources :

voila le code du frame :

unit uCustomPluginFrame;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TCustomPluginFrame = class(TFrame)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
    constructor Create(AOwner: TComponent); override;
    property Caption;
  end;

implementation

{$R *.dfm}

{ TCustomPluginFrame }

constructor TCustomPluginFrame.Create(AOwner: TComponent);
begin
  inherited;

end;

procedure TCustomPluginFrame.Button1Click(Sender: TObject);
begin
  Edit1.Text := DateToStr(Now);
end;

Initialization
  RegisterClass(TCustomPluginFrame);
Finalization
  UnregisterClass(TCustomPluginFrame);

end.

là celui de l'appli :

unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Déclarations privées }
    Module: THandle;
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

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.



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.

merci d'avance pour vos réponses.

[}:)] PhoenyX [}:)]
mercredi 24 août 2005 à 23:02:21 | Re : Plugin/paquet : class introuvable

Delphiprog

Administrateur CodeS-SourceS
Réponse acceptée !
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.


Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
jeudi 25 août 2005 à 11:23:35 | Re : Plugin/paquet : class introuvable

phoenyx

Réponse acceptée !
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)

merci pour le coup de pouce.

[}:)] PhoenyX [}:)]


Cette discussion est classée dans : end, frame, procedure, paquet, tcustompluginframe


Répondre à ce message

Sujets en rapport avec ce message

TNotifyEvent [ par apz ] Salut, en executant ce code j'ai eu le code d'ereur suivant : Types incompatibles : 'TnotifyEvent' et 'procedure, untyped pointer or untyped parameter "Incompatible types :''Cardinal' and 'String' " [ par Don0Choa ] Bonjour, je fais un petit prog permettant de fair des boite de dialogue en séléctionnant les bouttons, icones etc...Mais voila j'ai une erreur comem d procedure TForm1.LaunchBtn1Click(Sender: TObject); [ par Cyrille2 ] Salut, je fais un petit programme qui doit lire un fichier avec Treader mais j'obtient une EReadError "Invalid property value" sur le readlistbegin .. Problème Econversion Error lors de l'affichage d'une info bulle dans une fenetre MDIChild dans une DLL [ par DarkSky ] Salut a tous,j'ai créer un projet MDI avec Delphi 6 donc les fenetre MDi Filles sont dans une DLL.j'ai une erreur EConversionError a la place de l'aff Gestion du focus ? [ par Nebula ] Salut à tous !Je cherche à coder un éditeur (un peu comme SynEdit, mais en plus léger) pour la gestion du code C/C++, mais je me heurte à un petit pro pb d'affichage d'un TChart [ par Pegase20 ] bonjour, J'affiche une autre fiche qui contient un graphique (créé à l'aide d'un TChart) quand je clique sur un bouton.Mon pb c'est que le graph ne MDI Filles dans une DLL [ par DarkSky ] ..::= DarkSky =::..Salut almi,j'ai exactement le même problème que toi (Hint) sur l'utilisation de MDI Filles dans une DL pb a creer un exe avec la principal form invisible [ par Winniez ] J'ai voulu au demarrage de exe afficher une autre form que la form principal. a l'execution sa me met une erreur, apres g mis le meme code dans un bou Récupérer les données de zones Edit d'une autre appli [ par Prog59 ] Bonjour,J'ai une appli qui contient des Edit et je voudrai récupérer les données des Edit dans un fichier txt.J'ai repris le prg de DelphiProg concern Probleme lecture/ecriture dans fichier. [ par Cybric ] Bonsoir.Je débute avec DELPHI, donc novice.Je recopie tel quel le code de lecture de fichier trouvé dans "tout en poche" et cela ne fonctionne pas. Le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,218 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales