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

Langage Delphi Discussion :

EINOUTERROR avec selectDirectory


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 51
    Points : 69
    Points
    69
    Par défaut EINOUTERROR avec selectDirectory
    Bonjour à tous,

    J'utilise un selectrepertory pour permettre à l'utilisateur de choisir un repertoire.

    J'obtiens un bug si l'utilisateur choisi le lecteur cd par exemble


    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
     
    try
               if SelectDirectory(self.sSelection, [sdAllowCreate, sdPerformCreate,   sdPrompt], SELDIRHELP) then
                     begin
                            self.sEmplacementChoisi:=self.sSelection ;
     
                            // On retourne le chemin vers le répertoire
                            result:=self.sEmplacementChoisi;
                     end
               else
                    result:='' ;
     
           except
                 on E : Exception do
                         ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
           end;

    Donc mon problème c'est que ma gestion de l'exception ne marche pas avec le try/except (EINOUTERROR)

    Y-a-t-il moyen de contourner ce problème, svp ?


    Merci d'avance pour l'aide que vous pourrez m'apporter.


    Fabpan

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    cadeaux voir PJ

    a utiliser comme un OpenDialog ou SaveDialog, avec pleins d'options en bonus (espace libre, type de support etc) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    begin
      if SelectFolderDlg.Execute then
        Edit1.Text := SelectFolderDlg.Directory;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    begin
      // necessite 64Mo sinon refuse le repertoire
      SelectFolderDlg.FreeSpaceNeeded := 64000000;
     
      // sur disque dur, ram disque, ou clef usb/carte memoire
      SelectFolderDlg.ValidDriveTypes := [dtFixed, dtRamDisk, dtRemovable];
     
      if SelectFolderDlg.Execute then
        Edit1.Text := SelectFolderDlg.Directory;
    end;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    begin
      // ne retente pas de demander à l'utilisateur un répertoire valide
      SelectFolderDlg.TryAgain := false;
      if SelectFolderDlg.Execute then
        Edit1.Text := SelectFolderDlg.Directory;
    end;
    Fichiers attachés Fichiers attachés
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  3. #3
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 355
    Points : 3 132
    Points
    3 132
    Par défaut
    Bonjour,

    @ Dr.Who, merci pour ton sélecteur de répertoire , mais j'ai un problème en essayant de l'utiliser :

    j'ajoute SelFolderDlg.pas à mon projet - j'ajoute SelFolderDlg dans le uses de ma fenêtre principale + un Edit1 + un bouton pour appeler le sélecteur

    J'essaye de compiler et j'ai des erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      [Avertissement] SelFolderDlg.pas(14): L'unité 'FileCtrl' est propre à une plate-forme
      [Erreur] SelFolderDlg.pas(35): Identificateur non déclaré : 'TSelectDirExtOpts'
      [Erreur] SelFolderDlg.pas(113): Identificateur non déclaré : 'sdNewUI'
      [Erreur] SelFolderDlg.pas(132): Trop de paramètres originaux
      [Erreur fatale] Unit1.pas(7): Impossible de compiler l'unité utilisée '..\..\Util\SelFolderDlg.pas'
    As tu une idée d'ou cela vient ? PS : j'ai Delphi7

    Par avance merci

    Charly

  4. #4
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    hahaha ben oui, forcement, la fonction à un peu changer de déclaration en D2009 et je n'ai pas prevus de directives pour D7.

    [Avertissement] SelFolderDlg.pas(14): L'unité 'FileCtrl' est propre à une plate-forme

    ça c'est normal, FileCtrl ne fonctionne qu'avec Windows.


    [Erreur] SelFolderDlg.pas(35): Identificateur non déclaré : 'TSelectDirExtOpts'

    remplacer par TSelectDirOpts (voir déclaration dans FileCtrl.pas)


    [Erreur] SelFolderDlg.pas(113): Identificateur non déclaré : 'sdNewUI'

    supprimer le paramètre et laisser les options vides : fOptions := [];

    [Erreur] SelFolderDlg.pas(132): Trop de paramètres originaux

    voir la déclaration de SelectDirectory dans D7 et le paramètre posant probleme.

    [Erreur fatale] Unit1.pas(7): Impossible de compiler l'unité utilisée '..\..\Util\SelFolderDlg.pas'

    normal vus les erreur au dessus, n'apparaitra plus une fois l'unité corrigée.



    correctif en piece jointe.
    Fichiers attachés Fichiers attachés
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  5. #5
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 355
    Points : 3 132
    Points
    3 132
    Par défaut
    Merci Dr.Who,

    j'ai corrigé tout ce que tu m'as indiqué, mais j'ai encore une erreur sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      if SelectFolderDlg.Execute then
        Edit1.Text := SelectFolderDlg.Directory;
    Il dit que SelectFolderDlg n'est pas déclaré

    (pourtant j'ai mis SelFolderDlg dans le uses de mon unité)

    Charly

  6. #6
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    tu dois créer un objet TSelectFolderDlg, il n'y a pas d'objet pré-crée dans l'unité.


    tu peux appeler comme ceci pour ne pas déclarer de variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure Tform1.Button1Click(Sender: TObject);
    begin
      with TSelectFolderDlg.Create(nil) do
      try
        if Execute then
          Edit1.Text := Directory;
      finally
        Free;
      end;
    end;
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  7. #7
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 355
    Points : 3 132
    Points
    3 132
    Par défaut
    Merci Dr.Who,

    ça marche très bien (avec TSelectFolderDialog.Create)

    @+

    Charly

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 51
    Points : 69
    Points
    69
    Par défaut
    Oui ca marche très bien.

    Merci beaucoup.

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

Discussions similaires

  1. SelectDirectory et l'exception EInOutError
    Par PiPo123 dans le forum Langage
    Réponses: 2
    Dernier message: 04/11/2009, 23h24
  2. Conserver l'arborescence avec SelectDirectory
    Par gige47 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 10/09/2007, 11h12
  3. [Link Error] avec SelectDirectory
    Par Aleksis dans le forum C++Builder
    Réponses: 1
    Dernier message: 22/08/2006, 00h04
  4. Problème avec EInOutError sous delphi 2005
    Par Teb dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2005, 11h48
  5. Réponses: 4
    Dernier message: 07/12/2002, 15h24

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