FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Seleccionar Carpeta
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
Seleccionar Carpeta
Posted: Fri Jan 26, 2018 02: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!!!
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
Re: Seleccionar Carpeta
Posted: Fri Jan 26, 2018 02:19 PM
El Sample de FW...
he comentado CurDrive() //la funci贸n CurDrive() no es de hb, creo que era de xhb.


Code (fw): Select all Collapse
// 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.
Un Saludo,

Xevi.



Aprendiz de la vida!!!
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
Re: Seleccionar Carpeta
Posted: Fri Jan 26, 2018 02:24 PM

Probado en otros equipos... y persiste el error.
No despliega la red!!!

Un Saludo,

Xevi.



Aprendiz de la vida!!!
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
Re: Seleccionar Carpeta
Posted: 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 (fw): Select all Collapse
聽 聽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!!!
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Seleccionar Carpeta
Posted: Mon Jan 29, 2018 08: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
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
Re: Seleccionar Carpeta
Posted: Mon Jan 29, 2018 09:31 AM
Antonio,

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



Un Saludo,

Xevi.



Aprendiz de la vida!!!
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Seleccionar Carpeta
Posted: Mon Jan 29, 2018 05: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
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Seleccionar Carpeta
Posted: Mon Jan 29, 2018 06:06 PM
Hola, mira se ayuda:

Code (fw): Select all Collapse
#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
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
Re: Seleccionar Carpeta
Posted: 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!!!

Continue the discussion