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 :

N'afficher que les répertoires du voisinage réseau


Sujet :

Langage Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 088
    Points : 41 054
    Points
    41 054
    Billets dans le blog
    62
    Par défaut N'afficher que les répertoires du voisinage réseau
    Tout est dans le titre , j'aimerais , avec un dialogue "classique" n'afficher que le 'voisinage réseau' ou d'ailleurs son contraire 'tout sauf le voisinage réseau' .

    c'est possible si j'en crois cette source en VB

    je pense que je dois jouer avec SHBrowseForFolder et browseInfo et les flags , mais là , je sèche lamentablement

    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
    function BrowseDialog
     (const Title: string; const Flag: integer): string;
    var
      lpItemID : PItemIDList;
      BrowseInfo : TBrowseInfo;
      DisplayName : array[0..MAX_PATH] of char;
      TempPath : array[0..MAX_PATH] of char;
    begin
      Result:='';
      FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
      with BrowseInfo do begin
        hwndOwner := Application.Handle;
        pszDisplayName := @DisplayName;
        lpszTitle := PChar(Title);
        ulFlags := Flag;
        lpfn := BrowseDialogCallBack;
       pidlRoot:=  // <<<-------------------------------------ici est la vraie question  
      end;
      lpItemID := SHBrowseForFolder(BrowseInfo);
      if lpItemId <> nil then begin
        SHGetPathFromIDList(lpItemID, TempPath);
        Result := TempPath;
        GlobalFreePtr(lpItemID);
      end;
    end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  2. #2
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Salut Serge

    J'ai trouvé cela :

    http://delphi.about.com/od/windowssh.../aa070400a.htm

    Ou peut-être des composants tous fait

    http://www.jam-software.com/shellbro...mponents.shtml

    A+

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Re

    En utilisant cette FAQ et l'unité FileCtrl voilà ce que tu pourrais faire

    FAQ

    EXTRAIT FAQ DEVELOPPEZ.NET
    Ajoute l'unité Shlobj

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function SpecialFolder(Folder: Integer): String;
    var
      SFolder : pItemIDList;
      SpecialPath : Array[0..MAX_PATH] Of Char;
    begin
      SHGetSpecialFolderLocation(Form1.Handle, Folder, SFolder);
      SHGetPathFromIDList(SFolder, SpecialPath);
      Result := StrPas(SpecialPath);
    end;
    Ensuite Dans un Tbutton par exemple :

    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
    procedure TForm1.Button3Click(Sender: TObject);
    Var
       Dir: String;
    begin
     
    // On force l'ouverture sur le reseau
    // Cela empeche a l'utilisateur dans choisir un autre
    // dans la FAQ voir toutes les autres CSIDL_
     
      if SelectDirectory('Chemin ..............',
        SpecialFolder(CSIDL_NETHOOD),Dir,[],Self) then
        begin
          showmessage(Dir);
        end;
     
    end;
    Amuse toi bien l'ami.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 088
    Points : 41 054
    Points
    41 054
    Billets dans le blog
    62
    Par défaut
    sur le premier post , on a la même source
    le second lien est très intéressant mais je ne veut pas mettre de shareware dans l'application (je songe à la passer Lazarus/Linux)

    à ma grande honte je n'avais pas pensé à regarder dans la FAQ
    je vais plutôt regarder ça de plus près elle me plait bien

    Merci , je vais pouvoir continuer à jouer
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 088
    Points : 41 054
    Points
    41 054
    Billets dans le blog
    62
    Par défaut
    pour l'instant les options proposées ne fonctionnant pas (peut être parce que je n'ai pas de réseau local ou je suis , pas de cable réseau branché non plus ) j'ai trouvé une autre astuce (windows vista , D2010)

    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
     
    uses StdActns; 
    ...
    // recherche répertoire
    procedure TForm3.Button1Click(Sender: TObject);
    var   bforFolder : TBrowseForFolder;
    begin
      bForFolder:=TBrowseForFolder.Create(self);
      try
        bForFolder.RootDir:='::{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}';  // réseau
    //    bForFolder.RootDir:='::{20D04FE0-3AEA-1069-A2D8-08002B30309D}'; ordinateur
        if bforFolder.Execute then
         ShowMessage('Selected: ' + #13#10 + bForFolder.Folder);
      finally
        bForFolder.Free;
      end;
    end;
    Maintenant :
    -est-ce valable sur tout les postes ?
    -est-ce valable pour XP ? WinMe (si si il en existe encore) ? etc...

    cela semble être les valeurs contenu dans le registre mais où ? c'est ma prochaine recherche ....
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Réponses: 10
    Dernier message: 12/04/2006, 10h56
  2. [JFileChooser] Afficher seulement les répertoires
    Par Cyborg289 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 04/09/2005, 15h45
  3. algorithme de tri tableau :afficher que les éléments unique
    Par sofiane61 dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 31/03/2005, 19h50
  4. n'afficher que les "print" dans query annalyser
    Par sky_perrinos dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/12/2004, 10h58
  5. [XML] n'afficher que les 3 premiers!
    Par Little Sloth dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 01/06/2004, 10h59

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