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

Composants VCL Delphi Discussion :

descendant de TOpenDialog et package d'execution (vcl)


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 269
    Par défaut descendant de TOpenDialog et package d'execution (vcl)
    Salut,

    J'ai implémenté un descendant des TOpenDialog en utilisant un template défini dans une ressource (*.res).

    Pour plus d'info sur les templates pour les TOpenDialogue il suffit de regarder le code des TOpenPictureDialog dans ExtDlgs.pas, en gros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function TMyOpenDialog.Execute(ParentWnd: HWND): Boolean;
    begin
      if NewStyleControls and not (ofOldStyleDialog in Options) then
        Template := 'BSDLGTEMPLATE01'
      else
        Template := nil;
     
      Result := inherited Execute(ParentWnd);
    end;
    La boite de dialogue fonctionne parfaitement tant que le projet n'est pas compilé pas avec les "package d'exécution" (vcl en particulier).
    Si il est compilé avec les package alors la methode execute affiche un sablier et se termine sans rien faire.

    Si il est compilé mais que le template n'est pas affecté alors la boite de dialogue s'ouvre, mais bien sur sans les fonctionnalités ajoutées !

    En debuggage, on arrive sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Result := inherited Execute(ParentWnd);
    qui ne fait rien et renvoie faux.

    si quelqu'un à une idée sur la question...

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 269
    Par défaut
    Double-auto-reponse :

    1- Il y avait un moyen de contourner le problème : utiliser la ressource des TOpenPictureDialog qui contient uniquement un panel vide. Ce qui me va bien car les contrôles sont instanciés dans le constructeur de la boite de dialogue.

    2- La vrai solution m'a été donnée sur le forum Embarcadero : il faut affecter la propriété TCommonDialog.templateModule. Si la ressource est associé à l'unité alors luis affecter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TMyOpenDialog.templateModule := FindClassHInstance(TMyOpenDialog)

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

Discussions similaires

  1. Packaging et execution
    Par suckthewindow dans le forum Général Python
    Réponses: 3
    Dernier message: 04/06/2008, 09h41
  2. [JNI]Execution d'une dll dans un jar avec package
    Par osopardo dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 01/09/2006, 11h50
  3. [SQL2k] Execution d'un package DTS via un job
    Par zebulon90 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/06/2006, 15h00
  4. Executer un script batch depuis un DTS package
    Par Nadaa dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/03/2006, 09h14
  5. Package Dans un schema maitre executé par un schema Esclave
    Par argoet dans le forum Administration
    Réponses: 18
    Dernier message: 29/09/2004, 16h34

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