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 23-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 20
ruina Va por buen camino
Alternativas a libc.System

pues bien, ya funciona todo, todo perfecto... muy bonito. Pero (siempre hay un pero) al usar Libc.system() la aplicación delphi-kylix se me queda freeze, osea, hasta que no cierre la ventana o el programa que he abierto no vuelve a funcionar el programa kylix..

Sé que tiene que haber alguna alternativa (me suena de alguna clase a la que no debi prestar mucha atención) como fork o algo asi. Pero no tengo ni idea de como puede ser....

¿algun linuxero de buen corazón por aqui cerca?

Gracias
Responder Con Cita
  #2  
Antiguo 23-07-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Te deja colgada la app o te tira algún error?

Es medio raro, pero lo cierto es que Kylix 3 me trajo varios problemas con las ultimas distros de linux (por ejemplo los diálogos de archivos generan un lockeo del IDE). En algunas webs dicen que al faltarle soporte para actualizar la herramienta en conjunto con el avance del kernel y los módulos de linux muchas cosas dejan de andar. Hay gente que desarrolla parches y demás, pero lo cierto es que mucho no ayudan.

Pero vemos que se puede hacer. Serviría saber que Distro de linux tenés, versión de Kylix y algún dato que nos ayude a ayudarte.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 23-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 20
ruina Va por buen camino
no, no me tira la aplicación, simplementa se queda congelado el IDE hasta que cierras la aplicación a la que has llamado (el netscape), tal y como bien has dicho: lockeo del IDE
uso k3 y ahora mismo estoy en suse 9.0, en Red Hat 7.2 no ocurre
Responder Con Cita
  #4  
Antiguo 24-07-2004
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
A mi no se me cuelga, simplemente no hace NADA (eso si, sin mensajes de error ni nada por el estilo que me dé una pista)

Como no tengo ni idea de linux os rogaría alguna precisión al respecto
¿Hay que crear algún grupo especial para que Kylix pueda trabajar en el directorio del usuario?

Como nota os diré que instalé Kylix en Mandrake 9.2 como "root" en el directorio /usr/local/Kylix3 dando todos los permisos al usuario, grupo y resto ¿lo he hecho bien? ¿hay otra forma de hacerlo?

Por cierto, aprovecho la ocasión , cada dos x tres pierdo el menú de Borland que Kylix crea al instalarse y al final he optado por un enlace en el escritorio.
¿Como puedo evitar este mal rollo?
Saludos y gracias adelantadas
Salvica
Responder Con Cita
  #5  
Antiguo 29-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 20
ruina Va por buen camino
bueno, al final lo encontré: &

¡¡aleluya hermanos!!

con libc.system la aplicación espera a que se termine de ejecutar el shell de linux, todo se soluciona mediante &, que si lo pones al final de la instrucción a ejecutar intenta retornar inmediatamente, sin esperar a que termine. Ej: libc.system('konqueror /home &')
eso si, perdemos el número de error que pudiera devolver.

las otras alternativas son:
-intentar jugar con fork y execv, aunque lei en un articulo de borland que es sistema X es muy suyo cuando una aplicacion se hace un fork
-ejecutar libc.system en un thread aparte, cuando termine (si es que termina) obtendremos el valor de retorno. (hay un ejemplo muy vistoso: "kylix-app-run.zip" http://delphi.icm.edu.pl/newl/midxk10f.htm)


NOTA:
salvica, intenta ejecutar el programa SIN el debug, osea, desde linea de comandos, parece que system no se lleva muy bien con el debug de kylix.

para ello simplemente hazte un script para arrancar la aplicación:
Código:
#! /bin/sh
export LD_LIBRARY_PATH=/usr/local/kylix/bin...(donde este)
 
cd /usr/local/misfuentes
./miproyecto -ns
__________________
todo el mundo debe creer en algo... yo creo que voy a tomarme otra copa.
Responder Con Cita
  #6  
Antiguo 21-08-2004
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Talking

Gracias ruina, he comprobado que solo tengo el problema cuando ejecuto el programa en modo "shell", si lo ejecuto directamente funciona
Código Delphi [-]
     .....
     tmpDir   := GetCurrentDir;
     {$ifdef LINUX}
        tmpCab := 'LINUX';
        libC.system(PChar('echo "[LINUX]" > '    +tmpDir+'/user.ini'));
        libC.system(PChar('echo "home=$HOME" >> '+tmpDir+'/user.ini'));
     {$else}
        tmpCab := 'WINDOWS';
        UserIni := TIniFile.Create( tmpDir+'/user.ini' ); 
        UserIni.WriteString( tmpCab, 'home', 'C:\PROGRAMAS' );
        UserIni.Free;
     {$endif}
     UserIni := TIniFile.Create( tmpDir+'/user.ini' ); 
     DIR_MAIN := UserIni.ReadString( tmpCab, 'home', '' );
     UserIni.Free;
     if( DIR_MAIN='' ) then begin
        { mensajes para aplicación no instalada }
        .....
        Application.Terminate;
        exit;
     end;
     .....
Vamos que solo quiero saber donde voy a tener los directorios de trabajo de la aplicación (y ya que estoy con el Linux, pués aprender algo más)

Otra cosa (morro tengo) hay mucha documentación y ejemplos para evitar dos instancias del mismo programa, pero solo lo he visto para Windo$ ¿No hay nada para Linux?

Gracias adelantadas
Salvica
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


La franja horaria es GMT +2. Ahora son las 03:54:21.


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