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

Delphi Discussion :

Utilisation d'une variable publique dans une DLL


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut Utilisation d'une variable publique dans une DLL
    J'utilise une DLL devant accéder aux données.
    Elle inclut donc un DataModule.
    Le DataModule est initialisé à l'ouverture de la DLL et je voudrais savoir le rendre Global pour que les différentes unités le voient sans que j'ai à le repasser en paramètre.

    Actuellement mon code ressemble à cela
    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
    Var
       DM    : TDM;
       oForm : ToFormS01_ECIV;
     
     
    {$R *.RES}
    Procedure xxx(P1        : String;
                  var Objet : TPanel);
    Var
       oPanel: TPanel;
       oForm : Tform;
     
    Begin
       DM := TDM.Create(Nil);
       DM.DM_Initialisation;
       oForm := TW_Test.Create(Application);
       oForm.ParentWindow := Objet.Handle;
       oForm.Align        := alClient;
       oForm.Show;
    End;
     
    Exports xxx;
     
    begin
    end.
    Le problème est qu'au niveau de la Form la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       With l_ADO_Query Do Begin
            Connection := DM.DM_ADO_Connection;
    DM est égal à Nil

  2. #2
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    Je suppose que tu as bien chargé la dll? Utilises-tu du just in time auqeul cas, si elle trop logtemps inutile, a dll est peu être déchargée.

    Es-tu sur qu'il n'y a pas eu d'exception dans ta dll, qui aboutit aussi à DM == nil?

    Voilà quelques pistes.

  3. #3
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Il ne faut pas passer le handle de l'application à la DLL?

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut
    La DLL fontionne bien.
    Elle affiche les informations, ouvre bien le dataModule et charge les informations dont elle a besoin.
    En parametre elle reçoit juste le handle d'un panel dans lequel elle doit travailler.

  5. #5
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    Le handle du panel est-il valide en dehors du processus qui le detient? Il me semble que ce n'est pas une certitude.

    Le handle de l'application, l'est mais pour les autres...je ne sais plus.

    Tu peus nous faire un screenshot du message d'erreur?

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut
    J'ai ajouté le Handle de l'application dans les paramètres attendus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Procedure xxx(    P1    : String;
                  var Objet : TPanel;
                      Appli : HWND);
    Par contre j'ai un premier problème : HWND est de type inconnu. A lire l'aide j'avais compris qu'il fallait un Uses de TForm mais apparament ce n'est pas le cas.

    Ma seconde question : une fois que j'aurai le handle de l'application comment faut-il il appeler le dataModule ?

    Merci d'avance

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/06/2009, 10h54
  2. [PHP-JS] Récupérer une variable JS dans une variable PHP
    Par Perceuse-Killer dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2008, 15h34
  3. Réponses: 1
    Dernier message: 20/04/2007, 09h12
  4. [PHP-JS] mettre une variable javascript dans une variable php
    Par Mounr dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/04/2007, 09h09
  5. récupérer une variable javascript dans une variable java
    Par tx dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/07/2006, 17h55

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