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 :

Modifier un TPanel via 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 Modifier un TPanel via une DLL
    Passer un TPanel en paramètre à une DLL.

    J'ai une application qui va utiliser plusieurs DLL
    Le code d'une DLL ressemble actuellement à ceci

    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
    26
    27
    28
    29
    30
    31
    32
    33
    library dll;
     
    { Remarque importante concernant la gestion de mémoire des DLL : ShareMem doit être
      la première unité de la clause USES de votre bibliothèque ET de votre projet
      (sélectionnez Projet-Voir source) si votre DLL exporte des procédures ou des
      fonctions qui passent des chaînes comme paramètres ou résultats de fonctions.
      Ceci s'applique à toutes les chaînes passées de et vers votre DLL - même celles
      qui sont imbriquées dans des enregistrements et classes. ShareMem est l'unité d'interface pour
      le gestionnaire de mémoire partagée BORLNDMM.DLL, qui doit être déployé avec
      vos DLLs. Pour éviter d'utiliser BORLNDMM.DLL, passez les informations de chaînes
      avec des paramètres PChar ou ShortString.}
     
    uses
      FastShareMem in '..\..\IAD\FastShareMem.pas' {FastShareMem},
      SysUtils,
      Classes,
      dialogs,
      Forms,
      QExtCtrls;
     
    {$R *.RES}
    Procedure xxx(P1        : String;
                  var Objet : TPanel);
     
    Begin
    showmessage('dll' + P1);
    showmessage(Objet.Caption);
    End;
     
    Exports xxx;
     
    begin
    end.
    Je voudrais qu'elle soit capable d'effectuer des modifications sur le TPanel qu'elle reçoit en paramètre.
    Actuellement si dans ma feuille principale j'appelle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xxx('test'+Panel1.caption, Panel1);
    elle m'affiche bien le premier paramètre que je lui passe mais rien au niveau du Caption du panel.

    J'ai fait une recherche et trouvé un sujet à peu près semblable (c'est là que j'ai trouvé le lien sur FastShareMem) mais je n'arrive pas à m'en sortir.

  2. #2
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Procedure xxx(P1        : String;
                  var Objet : TPanel);
     
    Begin
    showmessage('dll' + P1);
    showmessage(Objet.Caption);
    End;
    je vois pas de modif sur le panel,

  3. #3
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Salut
    C'est normal que tu aies dans ta liste des uses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      ...
      Forms,
      QExtCtrls;
    Normalement, l'un est VCL (Forms) et l'autre CLX (QExtCtrls)
    Est-ce un projet CLX? Si non, remplace le QExtCtrls par ExtCtrls
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  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
    Effectivement j'ai juste remplacé QExtCtrls par ExtCtrls et tout fonctionne.
    Pour une seule lettre (et sans jeu de mots)...

    Vraiment merci beaucoup.

    Dans mon exemple j'avais limité le code à la simple lecture en pensant que si déjà ce premier point ne fonctionnait pas le second n'irait pas mieux.

  5. #5
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Citation Envoyé par Delphi-ne
    Pour une seule lettre (et sans jeu de mots)...
    Eh oui mais cette lettre a son importance, ExtCtrls est l'unité de la VCL et QExtCtrls est l'unité CLX...

    N'oublie pas
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/01/2012, 14h16
  2. Réponses: 4
    Dernier message: 21/08/2008, 17h00
  3. Modifier un champ via une listview et un textbox
    Par JLV1975 dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/03/2008, 16h03
  4. Réponses: 4
    Dernier message: 20/10/2006, 16h19
  5. Sécuriser un répertoire via une DLL
    Par kazarn dans le forum MFC
    Réponses: 2
    Dernier message: 05/03/2005, 17h33

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