Seleccionar Carpeta

Seleccionar Carpeta

Postby Xevi » Fri Jan 26, 2018 2:09 pm

Estoy tratando de utilizar el diálogo para seleccionar Carpeta

cGetFolder( "Seleccionar Carpeta" )
o
cGetDir( "Seleccionar Carpeta" )


Bien, funciona pero no "despliega" la red

No puedo acceder a las carpetas/equipos de red.

¿?¿?
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
 
Posts: 169
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Seleccionar Carpeta

Postby Xevi » Fri Jan 26, 2018 2:19 pm

El Sample de FW...
he comentado CurDrive() //la función CurDrive() no es de hb, creo que era de xhb.


Code: Select all  Expand view

// New cGetDir() function demo

function Main()

   local cDirName := cGetDir( "Select a directory",;
                              /*CurDrive() + ":\" +*/ GetCurDir() )

   MsgInfo( cDirName )
   MsgInfo( LFN2SFN( cDirName ) )

return nil
 


No me funciona... no se despliega la red.
Last edited by Xevi on Fri Jan 26, 2018 2:30 pm, edited 2 times in total.
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
 
Posts: 169
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Seleccionar Carpeta

Postby Xevi » Fri Jan 26, 2018 2:24 pm

Probado en otros equipos... y persiste el error.
No despliega la red!!!
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
 
Posts: 169
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Seleccionar Carpeta

Postby Xevi » Sun Jan 28, 2018 11:14 pm

Bien, no he recibido respuesta por este medio, si por privado,..

Decir que lo he probado con cGetDir(), cGetDirA(), cGetFolder()... ninguna me despliega la red

pero no llegado a resolver el problema, comento como lo subsano de momento.

Code: Select all  Expand view

   Local oShell  := CreateObject("Shell.Application")
   Local oFolder := oShell:BrowseForFolder( oWnd:hWnd, "Folder / Carpeta", , )  
   Local oSelf

   If !Empty(oFolder)
      oSelf := oFolder:Self
      ? oSelf:Path
   EndIf

 
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
 
Posts: 169
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Seleccionar Carpeta

Postby Antonio Linares » Mon Jan 29, 2018 8:00 am

Xevi,

Puedes mostrar una imagen de cómo se ve la caja de diálogo de Windows cuando despliega la red ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41205
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Seleccionar Carpeta

Postby Xevi » Mon Jan 29, 2018 9:31 am

Antonio,

utilizando
CreateObject("Shell.Application")
oShell:BrowseForFolder( oWnd:hWnd, "Folder / Carpeta", , )



Image
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
 
Posts: 169
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Seleccionar Carpeta

Postby Antonio Linares » Mon Jan 29, 2018 5:42 pm

Xevi,

gracias

La función del API de Windows utilizada es GetOpenFileName()
https://msdn.microsoft.com/es-es/library/windows/desktop/ms646927(v=vs.85).aspx

los distintos valores que esa función usa estan especificados aqui:
https://msdn.microsoft.com/es-es/library/windows/desktop/ms646839(v=vs.85).aspx

Hay un valor (OFN_NONETWORKBUTTON) que oculta el botón de la red. No veo que lo estemos usando en el código en C de FWH.

te aparece a ti ese botón ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41205
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Seleccionar Carpeta

Postby karinha » Mon Jan 29, 2018 6:06 pm

Hola, mira se ayuda:

Code: Select all  Expand view

#include 'fivewin.ch'

#define OFN_PATHMUSTEXIST            0x00000800
#define OFN_NOCHANGEDIR              0x00000008
#define OFN_ALLOWMULTISELECT         0x00000200
#define OFN_EXPLORER                 0x00080000     // new look commdlg
#define OFN_LONGNAMES                0x00200000     // force long names for 3.x modules
#define OFN_ENABLESIZING             0x00800000
#define OFN_HIDEREADONLY             0x00000004     // Oculta a caixa de seleção Somente leitura.
#define OFN_NONETWORKBUTTON          0x20000        // Desabilita o botão [ REDE ] da Dlg

function aGetFiles( cMask, cTitle, nDefaultMask, cInitDir )

   local cSelect, nAt, aFiles := {}
   /*
   local nFlags   := nOr( OFN_PATHMUSTEXIST , OFN_NOCHANGEDIR , ;
                     OFN_ALLOWMULTISELECT , OFN_EXPLORER , ;
                     OFN_LONGNAMES, OFN_ALLOWMULTISELECT )
   */

   local nFlags   := nOr( OFN_PATHMUSTEXIST, OFN_NOCHANGEDIR, OFN_ALLOWMULTISELECT, ;
                          OFN_LONGNAMES, OFN_NONETWORKBUTTON )

   SKINBUTTONS()

   //cSelect  := cGetFile( cMask, cTitle, nDefaultMask, cInitDir, .f., .t., nFlags )

   /*
   cSelect := cGetFile( "Bitmap (*.bmp)| *.bmp|"+      ;
                        "DIB   (*.dib)| *.dib|" +      ;
                        "PCX   (*.pcx)| *.pcx|" +      ;
                        "JPEG  (*.jpg)| *.jpg|" +      ;
                        "GIF   (*.gif)| *.gif|" +      ;
                        "TARGA (*.tga)| *.tga|" +      ;
                        "RLE   (*.rle)| *.rle|" +      ;
                        "Todos os Arquivos (*.*)|*.*|" ;
                        ,"Selecione a Foto Desejada",1,,.F.,, nFlags )
   */


   cSelect  := cGetDir( cMask, cTitle, nDefaultMask, cInitDir, .f., .t., nFlags )

   cSelect  := Left( cSelect, At( Chr( 0 ) + Chr( 0 ), cSelect ) - 1 )

   if ! Empty( cSelect )
      cSelect  := StrTran( cSelect, Chr( 0 ), "," )
      aFiles  := hb_aTokens( cSelect, "," )
      if Len( aFiles ) > 1
         for nAt := 2 TO Len( aFiles )
            aFiles[ nAt ] := aFiles[ 1 ] + "\" + aFiles[ nAt ]
         next nAt
         ADel( aFiles, 1 )
         ASize( aFiles, Len( aFiles ) - 1 )
      endif
   endif

return aFiles


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7154
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Seleccionar Carpeta

Postby Xevi » Mon Jan 29, 2018 10:01 pm

Antonio,

Utilizando la función cGetDir(), cGetDirA(), cGetFolder() en el tree que despliega se ve igualmente el icono red (xarxa) como en la imagen, salvo que cuando le clico a desplegar la red se deshabilitan los botones "crear carpeta" y "Aceptar" y queda el cursor pensando (30seg.aprox)... pero no despliega los equipos de red. Sin embargo, como puedes ver en la imagen, utilizando
CreateObject("Shell.Application")
oShell:BrowseForFolder( oWnd:hWnd, "Folder / Carpeta", , )

Si me despliega y muestra perfectamente los equipos de la red y puedo interactuar entre ellos.


Gracias por tu tiempo.
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
 
Posts: 169
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 13 guests