Cambiar directorio home del proyecto

1,232 views
Skip to first unread message

Analyzer

unread,
Mar 21, 2013, 1:57:01 PM3/21/13
to Comunidad de Visual Foxpro en Español
Para fines de prueba de un menú con letras grandes, guardé un proyecto hacia otra carpeta y me marca una serie de errores ya que al generar el proyecto trata de encontrar todo en la carpeta anterior.

Reviso uno por uno los forms y en proyect info apuntan a la carpeta anterior. Lo cambio manualmente y aparentemente acepta el cambio.

Compilo y otra vez los mismo errores.

Donde se le puede indicar al VFP que el proyecto ya fue cambiado a otra carpeta?..

Normalmente cuando guardo un proyecto en otra carpeta aparece un mensaje diciendo que el proyecto fue movido y si se desea que este nuevo directorio funcione como el nuevo home, pero por alguna razón esta vez no apareció ese mensaje.

Ahora tengo que lograr lo que normalmente se logra aceptando ese mensaje, pero como?..

Nota. El problema no es el direccionamiento de la ruta del sistema, sino el home del proyecto. 

Saludos!

Martin Peveri

unread,
Mar 21, 2013, 2:36:47 PM3/21/13
to publice...@googlegroups.com
Que errores te da?.

El set defa lo tenés así: SET DEFAULT TO  SYS(5) + SYS(2003) ?

No cambiaste el nombre ninguna carpeta del sistema?.

Saludos

Analyzer

unread,
Mar 21, 2013, 3:09:09 PM3/21/13
to publice...@googlegroups.com
Martín,

Gracias por responder..

Los errores que me da son los típicos que brincan al realizar una compilación con el generador de proyectos, indicando que las cosas no están en su lugar.

Si tengo el set defa correctamente.

Pero el problema es el que indiqué.. cambiar el directorio home del proyecto, no del sistema.

Saludos!

Fox Reloaded

unread,
Mar 21, 2013, 6:04:09 PM3/21/13
to Comunidad de Visual Foxpro en Español
Bueno si te doy mi consejo yo encontre leyendo el manual de visual fox pro MSDN hay unas funciones interesantes y pude lograr lo que queria que es parecido a lo que hacia en C que es con la funcion CurDir del sistema (ni siquiera sabia que eso existia en windows :O) el codigo que uso para mi proposito es el siguiente 

SET DEFAULT TO FULLPATH(CURDIR()) && Si tenei que agregar ADDBS() lo podei hacer sin problemas aunque creo que FULLPATH() te da la cadena completa.

Logicamente esto lo complemento colocando una variable publica o como yo diria global para todo tu proyecto
PUBLIC DirPath as character
DirPath = FULLPATH(CURDIR))

Y ahi tendrias la direccion desde donde se ejecuta tu proyecto compilado, el unico detalle es que en tiempo de diseño cada vez que abrai el proyecto tenei que hacer desde la consola de comandos SET DEFAULT TO "Direccion escrita manual" pero eso es solo cada vez que abras VFP para trabajar en tu proyecto.

De ahi el resto de la variable la podei utilizar en tu proyecto para tener un Root Path para trabajar los diversos elementos que cuenta al momento de programar, reportes, formularios, clases, etc.

Intentalo y me cuentas tu resultado y esperando haberte ayudado.




2013/3/21 Analyzer <thenewin...@gmail.com>



--
Thank you for everything... :)


----  Christian Torres ----
* * * * Venezuela * * * *
Message has been deleted
Message has been deleted

Fernando D. Bozzo

unread,
Mar 21, 2013, 6:22:47 PM3/21/13
to publice...@googlegroups.com
Hola Analyzer:

Los proyectos, forms, clases, reports y labels son tablas, por lo que los podés abrir como una tabla para verlos por dentro. Solo asegurate de indicar la extensión para que no busque ".dbf".

Por ejemplo:
USE miproyecto.pjx
USE miform.scx
USE milibreria.vcx
etc.

Dentro se los mismos vas a ver que guardan los nombres de los objetos, de las clases que instancian y sus rutas relativas o absolutas.
- Las rutas se guardan relativas (ej: formularios\miform.scx) si el componente referenciado está en el mismo disco o unidad (C:, D:, etc)
- Las rutas se guardan absolutas (ej: G:\tests\forms\miform.scx) si el componente referenciado está en otro disco o unidad

Para comprobarlo investigando un poco crea un directorio c:\desa con un subdirectorio test (c:\desa\test) y otro subdirectorio c:\otro
- Create un proyecto llamado "test" en c:\desa, y dentro del proyecto:
- Agregale un form llamado "form1" que guardes en el mismo directorio del proyecto (c:\desa)
- Agregale un form llamado "form2" que guardes en el subdirectorio "test"
- Agregale un form llamado "form3" que guardes en el subdirectorio "c:\otro"
- Agregale un form llamado "form4" que guardes en el subdirectorio "g:\descargas"

Si luego cerrás el proyecto, lo abrís como tabla (USE test.pjx) y lo mostrás con BROWSE vas a ver esto:

- En el primer registro vas a ver información del proyecto, con los siguientes campos y valores:
type        ==> H
name       ==> C:\DESA\TEST.PJX
reserved1 ==> C:\DESA\TEST.PJX
object      ==> c:\desa
homedir   ==> c:\desa

- En el segundo registro vas a ver información del primer form creado, con los siguientes campos y valores:
type        ==> K (la K es para los forms)
name      ==> form1.scx   (recordá que lo grabaste en c:\desa, mismo directorio del proyecto test, y por eso no tiene path)

- En el tercer registro vas a ver información del segundo form creado, con los siguientes campos y valores:
type        ==> K
name      ==> test\form2.scx   (recordá que lo grabaste en c:\desa\test, y por eso tiene el path relativo desde c:\desa\, que es "test\")

- En el cuarto registro vas a ver información del tercer form creado, con los siguientes campos y valores:
type        ==> K
name      ==> ..\otro\form3.scx   (recordá que lo grabaste en c:\descargas, y por eso tiene el path relativo desde c:\desa\, que es ".." para subir un nivel "c:\" y luego "otro" para bajar a otro nivel (c:\otro))

- Finalmente en el quinto registro vas a ver información del cuarto form creado, con los siguientes campos y valores:
type        ==> K
name      ==> g:\descargas\form4.scx   (En este caso la ruta no se puede calcular relativa por estar en otra unidad, entonces es absoluta)

Estos mismo lo vas a encontrar dentro de los forms, clases, etc, y lo que tienen dentro son las subclases instanciadas (botones, pageframes, etc). Viendo estas rutas vas a poder ver cuál está mal y arreglarla.

Te dejo el resto para investigar, suerte!  :)

eres.u...@gmail.com

unread,
Mar 21, 2013, 7:01:18 PM3/21/13
to publice...@googlegroups.com
Fox Reloader, ¿eres Guajiro?
Hablas igualitico que lo hacen acá en Colombia los guajiros, es decir costeños del departamento más norte de todo el país

Victor Navarro
Barranquilla COLOMBIA
3008102508
ICQ 279 364 380
Face: +573008102508
MSN: eres_u...@hotmail.com
Mail: eres_u...@yahoo.es
Whatsapp: +573008102508
Skype: eres_un_vago

Analyzer

unread,
Mar 22, 2013, 10:37:19 AM3/22/13
to publice...@googlegroups.com
Fox Reloaded y Fernando D. Bozzo,

Muchas gracias por su ayuda!

Fernando,

Normalmente el fox detecta que el proyecto se movió y pregunta si desea aceptar que este sea el nuevo directorio del proyecto. Parece tan sencillo desde ahi..

No creí que esto fuera tan complicado.. pero que bueno saber lo que está detrás de la escena. Gracias por la explicación detallada!

Saludos!


name      ==> ..\descargas\form3.scx   (recordá que lo grabaste en c:\descargas, y por eso tiene el path relativo desde c:\desa\, que es ".." para subir un nivel (c:\) y luego "descargas" para bajar a otro nivel (c:\descargas))


- Finalmente en el quinto registro vas a ver información del cuarto form creado, con los siguientes campos y valores:
type        ==> K
name      ==> g:\_desa\form4.scx   (En este caso la ruta no se puede calcular relativa por estar en otra unidad, entonces es absoluta)

Analyzer

unread,
Mar 22, 2013, 11:14:36 AM3/22/13
to publice...@googlegroups.com
Fernando D. Bozzo,

Abrí el proyecto con use miproyecto.pjx.

Modifiqué la columna homedir de todos y la direccioné a la ruta correcta.

En algunos estaba vacía.

Con eso se corrigió el problema. Funciona correctamente ahora. Fue sencillo..

Aunque sale un mensaje:

Apphook class loaded. Right Click on project or press ALT+F11 to run application builder.

Se cargó la clase Apphook. Haga un click derecho sobre el proyecto o presione ALT+F11 para ejecutar el generador de la aplicación.

Ni idea de que sea esa clase, pero si ya funciona, mejor ni le sigo buscando.

Nota. También agregué un SET PATH en el main.prg, por recomendación de un compañero.

Solucionado!! Gracias.

Luis Mata

unread,
Mar 22, 2013, 11:23:28 AM3/22/13
to publice...@googlegroups.com
Debiste estudiar leyes, porque esos tíos siempre buscan complicar lo mas sencillo y nos hacen perder el tiempo, te equivocaste de carrera..

Fox Reloaded

unread,
Mar 22, 2013, 3:52:53 PM3/22/13
to Comunidad de Visual Foxpro en Español
Dale tranquilo, y al que me preguntaba si era guajiro, pues no, no soy guajiro, te sorprenderia saber que soy colombo-venezolano, ya que mis padres son de alla donde tu vives (barranquilla), extraño no?

Y tranquilo, siempre es bueno saber que una respuesta buena o mala ayude a alguien en el camino de la programacion xD
Reply all
Reply to author
Forward
0 new messages