Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2011
Avatar de xanxov
xanxov xanxov is offline
Miembro
 
Registrado: sep 2007
Posts: 32
Poder: 0
xanxov Va por buen camino
Problema de permisos no puede ser, lo primero que hice fue asegurarme de que el usuario tenía la propiedad de la carpeta y de su contenido y esta todos los permisos, 777.
Lo del path, creo que tampoco. Con el archivo en el mismo directorio que el ejecutable tampoco va,

Pero, imaginemos que:

/home/xanxov/midir/imaxes/imaxe0.png

funciona. Sólo en ese ordenador.

Muchas gracias.Un saludo.
Responder Con Cita
  #2  
Antiguo 13-01-2011
Avatar de arturom
arturom arturom is offline
Miembro
 
Registrado: dic 2003
Ubicación: Alicante
Posts: 91
Poder: 21
arturom Va por buen camino
Cita:
Empezado por xanxov Ver Mensaje

Pero, imaginemos que:

/home/xanxov/midir/imaxes/imaxe0.png

funciona. Sólo en ese ordenador.
Hola,
eso se soluciona usando la función que te devuelve el path completo donde esta situado el ejecutable
Código Delphi [-]
ExtractFilePath( ParamStr( 0 ) )
Si la unes a la cadena que estás usando...
Código Delphi [-]
Image3.Picture.LoadFromFile( ExtractFilePath( ParamStr( 0 ) )+'/imaxes/imaxe0.png' )
Tienes el path completo.
__________________
"No guardes nunca en la cabeza aquello que te quepa en un bolsillo."

Albert Einstein
Responder Con Cita
  #3  
Antiguo 13-01-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Arturom ya ha contestado, pero voy a completar su respuesta.

Los sistemas *NIX no definen el directorio de trabajo como lo hace CP/M y sus derivados (Windows, DOS, ...). Estos sistemas no utilizan como tal el directorio desde el que se llama el programa sino el directorio de usuario ($HOME)*. Te recomiendo que le des un vistazo a Filesystem Hierarchy Standard que explica un poco cómo funciona la jerarquía usada la mayor parte de aquellos sistemas, y así sabrás dónde guardar los ejecutables, las bibliotecas y los datos (cada cosa va en un directorio diferente).

Edito: Si "dentro" de Lazarus funciona diferente, es porque ejecuta el programa redefiniendo el entorno para tenerlo controlado. Si no recuerdo mal, se puede modificar la configuración para indicarle el archivo de trabajo de forma explícita.

*Nota: Alguno me dirá que que cuando se usan comandos o parámetros en la línea de comandos del tipo "gcc fuente.c -o binario" sí se define como directorio de trabajo el directorio desde el que se hace la llamada, pero esto no así. Lo que pasa en estos casos es que el intérprete de comandos, cuando no identificar los parámetros como tales, supone que se trata de rutas relativas y lo que hace es sustituirlo por "gcc $PWD/fuente.c -o $PWD/binario". La prueba es que si no se indica el archivo binario, el compilador creará el archivo "a.out" en $HOME y no en el directorio actual (si miráis el código fuente de gcc veréis que se limita a abrir el archivo "a.out", sin ruta). Y también por esta razón (casi) todos los programas definen sus parámetros como cadenas que empiezan con el caracter "-", para que no los expanda el intérprete de comandos.

Como curiosidad, si haces cosas como "gcc * -o binario", el intérprete de comandos expande "*" y lo sustituye por la ruta completa de los archivos del directorio $PWD, por lo que no es necesario que el programa busque los archivos por sí mismo.

Hay que tener en cuenta que no todos los intérpretes de comandos funcionan igual, y hay algunos que no usan $PWD implícitamente, e incluso que no expanden los comodines "*" ni "?".
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 13-01-2011 a las 18:02:20.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
cuantas bd puedo abrir? sargento elias Conexión con bases de datos 5 05-06-2008 23:17:38
no puedo abrir un archivo con ShellExecute si el archivo es variable belpab API de Windows 2 28-11-2007 16:24:22
NO PUEDO ABRIR MySQL Caray MySQL 2 22-08-2007 00:58:38
No puedo abrir archivo directamente Manuel Internet 1 29-05-2007 16:03:45
No puedo abrir un gdb pmfras Conexión con bases de datos 5 13-01-2007 00:12:38


La franja horaria es GMT +2. Ahora son las 12:16:18.


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
Copyright 1996-2007 Club Delphi