Controlar tamaño ventana cGetfile [SOLUCIONADO]

Controlar tamaño ventana cGetfile [SOLUCIONADO]

Postby Ramón J. » Wed Dec 30, 2020 10:34 am

Hola a todos

Tengo una duda: A través de un diálogo llamo a la siguiente función, creo una serie de carpetas y muestro el contenido de la última carpeta con cGetfile, pero la ventana ocupa toda la pantalla y no da opción a minimizarla ni a reducir el tamaño.

El código es el siguiente:

if HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT )

if HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT+"\"+apunte)
msgalert("Ya existe ese apunte")

aFiles:=Array( ADir( Curdrive()+":\"+cfILES+"\"+"*.*", aFiles ) )
if len(aFiles)==0
msgInfo("La carpeta esta vacía. Debe añadir ficheros asociados")
endif


cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,.t.,,)
else
if lMkDir(Curdrive()+":\"+cRaiz+"\"+Carpetasat+"\"+apunte)
MsgInfo( "Debe añadir los ficheros asociados")
cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,.t.,,)
endif
endif
endif

El resultado es este:

Image

Ya digo, ocupa toda la pantalla. ¿Hay alguna forma de controlar el tamaño de la ventana?

Un saludo y gracias
Last edited by Ramón J. on Thu Dec 31, 2020 5:40 pm, edited 1 time in total.
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Postby cnavarro » Wed Dec 30, 2020 1:52 pm

La imagen no se ve
Yo uso
https://postimages.org/
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controlar tamaño ventana cGetfile

Postby Ramón J. » Wed Dec 30, 2020 2:02 pm

Hola, CNavarro

A ver si ahora se ve la imagen
Image
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Postby Antonio Linares » Wed Dec 30, 2020 2:20 pm

Ramón,

Prueba así:

#define OFN_ENABLESIZING 0x00800000

cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,)
regards, saludos

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

Re: Controlar tamaño ventana cGetfile

Postby Ramón J. » Wed Dec 30, 2020 2:32 pm

Hola, Antonio

He introducido lo que me has indicado y la ventana sigue igual.

El código completo del archivo es este:


#include "fivewin.ch"
#define OFN_ENABLESIZING 0x00800000

function ANEXA(cnum, cnom, nLibro, dfecha, cCentro, cDoc, cPrio, cClasedoc)


Local cRaiz:="\COMPARTIDO\REGSAT\WINSAT\DOCUMENTAL"
LOCAL CarpetaSAT:=alltrim(cnum)+"-"+alltrim(cnom)
Local libro:=strzero(nlibro,6)
LOCAL fecha:=strzero(day(dfecha),2)+strzero(month(dfecha),2)+str(year(dfecha),4)
Local Clasedoc:=alltrim(cClasedoc)
Local aFiles, aDir
Local cFolder := cRaiz+"\"+CarpetaSAT+"\"+Libro+"\"+fecha+"\"+Clasedoc
Local apunte :=libro+"-"+fecha
Local cFiles := cRaiz+"\"+CarpetaSAT+"\"+apunte
SET CENTURY ON
SET DATE TO FRENCH


//----------------Si no existe, se crea carpeta de la SAT------------------

if ! HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT )
if lMkDir( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT )
MsgInfo( "La carpeta de la SAT no existía y se ha creado")
endif
endif

//-------- Comprobado que existe la carpeta raiz, creamos las subcarpetas--------------

if HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT )

if HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT+"\"+apunte)
msgalert("Ya existe ese apunte")

aFiles:=Array( ADir( Curdrive()+":\"+cfILES+"\"+"*.*", aFiles ) )
if len(aFiles)==0
msgInfo("La carpeta esta vacía. Debe añadir ficheros asociados")
endif

cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,)
//cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,.t.,,)
else
if lMkDir(Curdrive()+":\"+cRaiz+"\"+Carpetasat+"\"+apunte)
MsgInfo( "Debe añadir los ficheros asociados")
// (cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,.t.,,),1)
cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,)
endif
endif
endif


return nil
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Postby Antonio Linares » Wed Dec 30, 2020 2:38 pm

Ramón,

Según esta documentacion de Microsoft:
https://docs.microsoft.com/en-us/windows/win32/api/commdlg/ns-commdlg-openfilenamea
hay que usar OFN_ENABLESIZING para poder redimensionar la caja de diálogo.

Este valor lo recibe la función cGetFile() en el séptimo parámetro:
DWORD dwFlags = IF( hb_pcount() > 6 && HB_ISNUM( 7 ), hb_parnl( 7 ), 2060 );

No lo he probado, solo me he limitado a buscar esa información.

Otra opción es verificar si la función cGetFile() sigue usando la función en C ComDlgHkFile() y desde ahi modificar el tamaño.
Si la primera solución no te funciona habrá que investigar esta segunda opción.
regards, saludos

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

Re: Controlar tamaño ventana cGetfile

Postby Ramón J. » Wed Dec 30, 2020 2:43 pm

Gracias, Antonio

Ahí me has pillado. Eso ya está fuera de mis conocimientos. La verdad es que no sé cómo solucionar ese problema.

De todas maneras, agradezco tu atención

un saludo
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Postby cnavarro » Wed Dec 30, 2020 2:56 pm

Prueba esto tal y como te lo pongo y dime si la ventana también aparece maximizada
Code: Select all  Expand view

 local cExt  := "*"
 ? cGetFile( "Archivos ( *. " + cExt + ") |*." + cExt + "|", "Seleccione Fichero", , ".\" )
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controlar tamaño ventana cGetfile

Postby Ramón J. » Wed Dec 30, 2020 3:13 pm

Hola, CNavarro

Ahora sale pequeña, centrada y se puede redimensionar con el puntero.

Image

Y al cerrar sale esto:

Image
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Postby Ramón J. » Wed Dec 30, 2020 3:39 pm

CNavaro, lo acabo de probar de nuevo y sigue igual, es decir, pantalla completa y sin poder redimensionar.

Tiene un comportamiento extraño
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Postby karinha » Wed Dec 30, 2020 3:59 pm

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

Re: Controlar tamaño ventana cGetfile

Postby Ramón J. » Wed Dec 30, 2020 5:06 pm

Gracias, João, pero no vale para mi caso. Además, como le he comentado a Antonio, no funciona con cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,), que es la solución que buscaba. es decir, la imagen siguiente (figurada):

Image

Como podrás ver, lo que pretende es que al abrir una diálogo de edición de registro sobre un xbrowse, se cree una ruta de carpetas para luego abrir la última creada y pegar archivos en ella.

Te agradezco tu atención
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Postby karinha » Wed Dec 30, 2020 9:25 pm

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

Re: Controlar tamaño ventana cGetfile [SOLUCIONADO]

Postby Ramón J. » Thu Dec 31, 2020 12:00 pm

Gracias, João.

Feliz Año Nuevo a todos
Un saludo
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 92 guests