TJpegImage.LoadFromFile repite parte de mi ruta!!
¡Hola, muchachos!
Gracias por la atención. He estado buscando por la red y el foro y no encuentro a nadie con un problema similar, pero seguro que lo hay :o Uso Delphi 7.0 y quiero cargar imágenes a partir de una ruta base que extraigo desde un archivo a una variable global (G_Img_Logos_URL), que luego concateno al nombre seleccionado con un TOpenPictureDialog (mi instancia se llama M_VOP_Logo). Mi TImage se llama: M_Img_Logo. Este es el código para seleccionar la imagen al pulsar sobre su espacio del formulario:
Y este el de mostrarla de nuevo al navegar por la base de datos:
Mi ruta de la aplicación es "C:\COGS\CGeSt\". Primero selecciono una imagen y me la muestra pero buscarla una segunda vez (el segundo trozo de código), casca. Al depurar la ejecución veo que la variable es correcta y vale "Loly\Datos\Logos\", pero me devuelve el error porque toma una ruta incorrecta (me duplica esta que acabo de ecribir): Cita:
|
Hola, Jpeg.LoadFromFile (G_Img_Logos_URL+sFoto);
sera eso no? hazte un showmessage antes de cada llamada a loadfromfile de lo que le pasas, creo que simplemente estas sumando un directorio con un nombre de fichero con path |
Me temo que no es eso
Hola, coso, gracias por la asistencia.
Como decía, en la depuración se observa que el valor de las variables es correcto: G_Img_Logos_URL = 'Loly\Datos\Logos\' sFoto = 'alfa.jpg' Y un ShowMessage me lo confirma. Si lo hago literalmente también me rula. El problema debe estar en que guarda en algún sitio la anterior ruta durante el primer procedimiento (el de asignación). Además, al navegar por la base de datos con valores ya guardados sólo se ejecuta el segundo procedimiento. En este caso, ¡todo marcha perfectamente! ¿Puede ser debido a una mala utilización del ExtractFileName? :confused: |
bueno, aqui jpeg.loadfromfile se tendria que llamar con el path incluido, no haria falta extraer tansolo el filename. PD : edito, nada, no le veo error |
ni idea, tampoco lo entiendo...:confused: quiza tendrias que poner mas codigo e indicar donde te salta exactamente
|
Sí, perdona. En la siguiente línea del 2º procedimiento:
|
Creo que ya se
Al no indicar ni la unidad ni el directorio raiz de Loly\datos\...te inicia en el directorio de la aplicacion. Prueba de poner G_Img_Logos_Url := 'c:\etc...'; |
Me toca aclarar las rutas porque no parece que sea lo que comentas, ya que lo que se repite está fuera de la ruta base de la aplicación:
- Ruta de la aplicación: 'C:\COGS\CGeSt' - Ruta de imágenes a cargar: 'C:\COGS\CGeSt\Loly\Datos\Logos\' - Fichero de prueba: 'alfa.jpg' |
¡Eureka!
¡¡¡Biennnn!!! Ya lo tengo: el OpenFileDialog tiene una opción clave que yo desconocía porque me estoy inciando con este componente: ofNoChangeDir, que por defecto está a False, pero debe estar a True.
Esta opción permite desctivar que mi ruta de ejecución cambie cuando se navega con el componente por los directorios, con lo que, al pretender usar una ruta relativa posteriormente, ésta se ve afectada y toma la ruta anteriormente cambiada. :cool: Oye, coso, muchas gracias por tus intentos. Saludiños ;) |
Por cierto, si añado la ruta absoluta funciona, claro, pero no me interesa porque quiero que los datos "cuelguen" del mismo directorio que la aplicación :D
|
Cita:
Código:
G_Img_Logos_URL = 'Loly\Datos\Logos\' saludos pd : Cita:
|
Cita:
De todas formas, como soy un fanático de la optimización (lo que puse al principio debía su desorden al desconcierto de las pruebas, jeje :p:D:p). Cita:
Cita:
|
yo lo haria por si acaso
|
http://msdn.microsoft.com/en-us/libr...06(VS.85).aspx
si por a o por b se te cambia el directorio activo, ya no te funcionaria |
He consultado el enlace que mandas, pero no me ilustra sobre si el CurrentDirectory es un dato para cada aplicación o algo más global, del sistema operativo.
Yo creo recordar que, en mis tiempos de facultad (Windows 3, ¡qué tiempos aquellos! :rolleyes:), nos habían enseñado que era un "parámetro local", pero no lo tengo claro hasta que vuelva a tener la aplicación estable para probarlo, que, como dices, creo que es recomendable. |
si, yo tambien hablaba pensando en windows 98 etc... pero ya te digo q lo haria asi, escribiendo la ruta absoluta mediante el extractfilepath, por si acaso. saludos.
|
La franja horaria es GMT +2. Ahora son las 12:39:41. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi