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

C++Builder Discussion :

Alternative à TOpenDialog/TSaveDialog


Sujet :

C++Builder

  1. #1
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut Alternative à TOpenDialog/TSaveDialog
    Bonjour à tous,

    Je suis sous BCB5, et comme l'explique très bien cette page:
    Problem is that Borland incorrectly wrote those components and when Microsoft add some new extended features in own dialogs, standard TOpenDialog and TSaveDialog still use old style. For example, when Microsoft added placebar in own dialogs, VCL's dialog still use old style without placebars.
    Connaissez-vous un composant alternatif à TOpenDialog permettant d'avoir la boite de dialogue "actuelle" de Windows (avec la barre d'emplacements à gauche)?

    Je me suis cassé les dents à essayer de faire la traduction Delphi => BCB pour l'instant sans succès, donc si certains d'entre vous ont une idée, je suis preneur!

    Merci d'avance.

    Voici une image trouvée sur le net avec une barre d'emplacement dans un OpenDialog, qui n'est pas présente dans le TOpenDialog (sous BCB5):

  2. #2
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    Voir du coté de l'option ofOldStyleDialog

    Sinon, appeler directement les API Windows GetOpenFileName et GetSaveFileName avec les flags OFN_ENABLESIZING et OFN_EXPLORER.

  3. #3
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    ofOldStyleDialog est pas défaut à false.
    En le mettant à true, on se retrouve avec une boite de dialogue style Win3.1

    Par contre effectivement en utilisant GetOpenFileName et OPENFILENAME ça fonctionne. Merci beaucoup pour les liens fournis!

    Un petit exemple simple pour ceux que ça intéresse (il y a d'autres éléments paramétrables, voir l'aide sur OPENFILENAME):
    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
      OPENFILENAME ofn;
      char szFile[300];
      *szFile = 0 ;
     
      ZeroMemory(&ofn, sizeof(OPENFILENAME));
      ofn.lStructSize  = sizeof(OPENFILENAME);
      ofn.hwndOwner    = Application->Handle;
      ofn.lpstrFile    = szFile;
      ofn.nMaxFile     = sizeof(szFile);
      ofn.lpstrFilter  = "Fichiers Text\0*.txt\0";
      ofn.lpstrDefExt  = "txt" ;
      ofn.Flags        = OFN_PATHMUSTEXIST ;
      ofn.lpstrTitle   = "Enregistrer Sous..." ;
     
      if ( GetOpenFileName(&ofn) )
        ShowMessage(  ofn.lpstrFile ) ;
      else
        ShowMessage( "Aucun fichier sélectionné" ) ;

  4. #4
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Salut, au lieu d'utiliser la taille 300:
    Tu pourrais utiliser le define suivant:
    Il est défini comme suit dans windef.h (pas besoin d'ajouter le include il est déjà inclus dans C++Builder):

  5. #5
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    OK, merci pour l'info!

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

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Alternative au dbms_output ?
    Par dam1311 dans le forum Oracle
    Réponses: 10
    Dernier message: 24/11/2004, 08h11
  3. [xsl] alterner de style entre deux apply-template
    Par laouache dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 23/04/2004, 11h49
  4. Alternative(s) a CVS
    Par MrSimon dans le forum SCM
    Réponses: 3
    Dernier message: 06/03/2004, 11h37
  5. [FORMATION] Formations par alternance
    Par chobol dans le forum Etudes
    Réponses: 10
    Dernier message: 20/02/2004, 11h28

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