Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2011-08

Componente wile64

11 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Anxo Vázquez

Hola.

Tengo una aplicaci�n con un gif animado implementado con el componente wile64, el caso es que la animaci�n funciona bien haciendo la instalaci�n mediante un script, en Debian, OpenSuse, Fedora y Ubuntu por lo que deduzco que lo hace en todas las distribuciones de Linux.
El problema surje cuando creo un paquete .deb o .rpm ya que le componente, s�lo ese, deja de funcionar. Supongo que me falta incluir la libreria que usa dicho componente. � Alguien me puede ayudar , por favor?. Un saludo.
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20110801/9df972dc/attachment.html>

Reply by email

José Mejuto
to Anxo Vázquez

Hello Anxo,

Monday, August 1, 2011, 8:54:02 PM, you wrote:

AV> Hola.

AV> Tengo una aplicaci�n con un gif animado implementado con el componente AV> wile64, el caso es que la animaci�n funciona bien haciendo la instalaci�n AV> mediante un script, en Debian, OpenSuse, Fedora y Ubuntu por lo que deduzco AV> que lo hace en todas las distribuciones de Linux. AV> El problema surje cuando creo un paquete .deb o .rpm ya que le componente, AV> s�lo ese, deja de funcionar. Supongo que me falta incluir la libreria que AV> usa dicho componente. � Alguien me puede ayudar , por favor?. AV> Un saludo.

Ese componente no tiene ninguna dependencia externa, es un programa pascal puro y s�lo usa el RTL de Lazarus y fpc.

Te da alg�n tipo de error al no funcionar ? C�mo sabes que no funciona, s�lo muestra una imagen, ninguna, ... ?

Best regards, Jos�

Reply by email

Anxo Vázquez
to José Mejuto

Hola Jos�.

No da ning�n tipo de error, sencillamente no muestra la imagen. Se que no funciona al ejecutar el programa. � C�mo surge ?.� Por qu� s�lo en los paquetes ?.

Un saludo.

El 1 de agosto de 2011 22:22, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 35 lines
Hello Anxo, Monday, August 1, 2011, 8:54:02 PM, you wrote: AV> Hola. AV> Tengo una aplicaci�n con un gif animado implementado con el componente AV> wile64, el caso es que la animaci�n funciona bien haciendo la instalaci�n AV> mediante un script, en Debian, OpenSuse, Fedora y Ubuntu por lo que deduzco AV> que lo hace en todas las distribuciones de Linux. AV> El problema surje cuando creo un paquete .deb o .rpm ya que le componente, AV> s�lo ese, deja de funcionar. Supongo que me falta incluir la libreria que AV> usa dicho componente. � Alguien me puede ayudar , por favor?. AV> Un saludo. Ese componente no tiene ninguna dependencia externa, es un programa pascal puro y s�lo usa el RTL de Lazarus y fpc. Te da alg�n tipo de error al no funcionar ? C�mo sabes que no funciona, s�lo muestra una imagen, ninguna, ... ? -- Best regards, Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20110802/9e51a079/attachment.html>

Reply by email

José Mejuto
to Anxo Vázquez

Hello Anxo,

Tuesday, August 2, 2011, 2:19:07 PM, you wrote:

AV> No da ning�n tipo de error, sencillamente no muestra la imagen. Se que no AV> funciona al ejecutar el programa. � C�mo surge ?.� Por qu� s�lo en los AV> paquetes ?.

Puede ser una tonter�a pero se te puede haber olvidado el .gif como referencia externa ? Ahora no tengo el c�digo accesible, pero creo recordar que wile64 no mete el gif en los recursos autom�ticamente.

Best regards, Jos�

Reply by email

Anxo Vázquez
to José Mejuto

Hola:

Es la primera vez que uso gifs animados pero creo que el problema no es del .gif mi impresi�n es que al crear el paquete .deb el componente pierde la ruta del .gif.
Durante el desarrollo del programa, la propiedad FileName, algunas veces perd�a el path al objeto, al modificarlo y compilarlo volv�a a funcionar. Si hago un script en bash, sin hacer ninguna referencia al .gif, funciona, esto para mi carece de toda l�gica.

Un saludo.

El 3 de agosto de 2011 09:57, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 23 lines
Hello Anxo, Tuesday, August 2, 2011, 2:19:07 PM, you wrote: AV> No da ning�n tipo de error, sencillamente no muestra la imagen. Se que no AV> funciona al ejecutar el programa. � C�mo surge ?.� Por qu� s�lo en los AV> paquetes ?. Puede ser una tonter�a pero se te puede haber olvidado el .gif como referencia externa ? Ahora no tengo el c�digo accesible, pero creo recordar que wile64 no mete el gif en los recursos autom�ticamente. -- Best regards, Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20110803/a076379d/attachment.html>

Reply by email

José Mejuto
to Anxo Vázquez

Hello Anxo,

Wednesday, August 3, 2011, 2:04:32 PM, you wrote:

AV> Es la primera vez que uso gifs animados pero creo que el problema no es del AV> .gif mi impresi�n es que al crear el paquete .deb el componente pierde la AV> ruta del .gif.

Lo que si hace es:

procedure TGifAnim.LoadFromFile(const Filename: string);
var
  GifLoader: TGifLoader;
begin
  FEmpty    := True;
  if not FileExists(Filename) then
    Exit;
[...]

AV> Durante el desarrollo del programa, la propiedad FileName, algunas veces AV> perd�a el path al objeto, al modificarlo y compilarlo volv�a a funcionar. AV> Si hago un script en bash, sin hacer ninguna referencia al .gif, funciona, AV> esto para mi carece de toda l�gica.

Yo en Windows lo que har�a (no se como se har�a en *nix) ser�a cargar el monitor de ficheros "filemon" y arrancar el programa y ver a que ficheros intenta acceder y como se llaman.

Otra cosa que se me ocurre el .deb instalar� el .gif en una carpeta sin privilegios de modificaci�n, al intentar abrirlo estoy casi seguro que lo hace en "R/W" y por lo tanto dar� error. Si lo copias con un script (no conozco bien el funcionamiento de los permisos) es posible que est�s copiando los permisos que tengas en la carpeta de desarrollo.

No se, son cosas que se me van ocurriendo al momento...

Best regards, Jos�

Reply by email

Anxo Vázquez
to José Mejuto

Hola Jos�:

La aplicaci�n se instala en /opt , all� se puede ver la carpeta principal y las dem�s, entre ellas /imaxes que contiene todas las images. Es propiedad del usuario que la instala y tiene permisos R/W/X. Siguiendo tu sugerencia prob� a crearlo con todos lo permisos "777" y tambi�n hice un paquete como root, el resultado siempre el mismo, el .gif animado no funciona. En la misma carpeta hay alg�n .png y un .gif con el logo de lazarus que se ven perfectamente. Prob� windows haciendo la instalaci�n con installjammer o ejecutando directamente funcionan. Por cierto, prodr�as explicarme lo que es filemon y como funciona.

Un saludo.

El 3 de agosto de 2011 16:30, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 52 lines
Hello Anxo, Wednesday, August 3, 2011, 2:04:32 PM, you wrote: AV> Es la primera vez que uso gifs animados pero creo que el problema no es del AV> .gif mi impresi�n es que al crear el paquete .deb el componente pierde la AV> ruta del .gif. Lo que si hace es: procedure TGifAnim.LoadFromFile(const Filename: string); var GifLoader: TGifLoader; begin FEmpty := True; if not FileExists(Filename) then Exit; [...] AV> Durante el desarrollo del programa, la propiedad FileName, algunas veces AV> perd�a el path al objeto, al modificarlo y compilarlo volv�a a funcionar. AV> Si hago un script en bash, sin hacer ninguna referencia al .gif, funciona, AV> esto para mi carece de toda l�gica. Yo en Windows lo que har�a (no se como se har�a en *nix) ser�a cargar el monitor de ficheros "filemon" y arrancar el programa y ver a que ficheros intenta acceder y como se llaman. Otra cosa que se me ocurre el .deb instalar� el .gif en una carpeta sin privilegios de modificaci�n, al intentar abrirlo estoy casi seguro que lo hace en "R/W" y por lo tanto dar� error. Si lo copias con un script (no conozco bien el funcionamiento de los permisos) es posible que est�s copiando los permisos que tengas en la carpeta de desarrollo. No se, son cosas que se me van ocurriendo al momento... -- Best regards, Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20110804/6f34df90/attachment.html>

Reply by email

José Mejuto
to Anxo Vázquez

Hello Anxo,

Thursday, August 4, 2011, 8:34:37 PM, you wrote:

AV> La aplicaci�n se instala en /opt , all� se puede ver la carpeta principal y AV> las dem�s, entre ellas /imaxes que contiene todas las images. Es propiedad AV> del usuario que la instala y tiene permisos R/W/X. Siguiendo tu sugerencia AV> prob� a crearlo con todos lo permisos "777" y tambi�n hice un paquete como AV> root, el resultado siempre el mismo, el .gif animado no funciona. En la AV> misma carpeta hay alg�n .png y un .gif con el logo de lazarus que se ven AV> perfectamente. Prob� windows haciendo la instalaci�n con installjammer o AV> ejecutando directamente funcionan. Por cierto, prodr�as explicarme lo que es AV> filemon y como funciona.

Pues la verdad es que no se me ocurre que puede ser, excepto un problema de permisos. Puedes abrir el componente wile64 y donde abre el fichero (buscas los if FileExists(...)) a�ades un msgbox o algo para saber que est� pasando. O compilas con informaci�n de debug y lo ejecutas, una vez instalado, con el gdb, apuntas la linea del FileExists y pones u breakpoint ahi, luego un "inspect" de la variable, pero esto parece un poco lioso la verdad.

Sobre filemon ahora se llama "Process Inspector" http://technet.microsoft.com/en-us/sysinternals/bb896645

Best regards, Jos�

Reply by email

Anxo Vázquez
to José Mejuto

Hola Jos�:
La verdad es que no prob� lo �ltimo que propusiste, en cuanto lo pruebe comento el resultado. Ven�a usando los .gif con el inspector de objetos apuntando la propiedad FileName al archivo.gif y con la propiedad Visible en tiempo de ejecuci�n los mostraba o ocultaba.

Probe el siguiente c�digo:

procedure TfrmCifLet.FormCreate(Sender: TObject);
var Anim1, Anim2, Anim3:String;
begin
  Anim1 := ExtractFilePath(ParamStr(0))+'/imaxes/letrasult.gif';
  GifAnim1.LoadFromLazarusResource('Anim1');
  Anim2 := ExtractFilePath(ParamStr(0))+'/imaxes/demo.gif';
  GifAnim2.FileName := 'Anim2';
  Anim3 := ExtractFilePath(ParamStr(0))+'/imaxes/profesor.gif';
  GifAnim3.FileName := 'Anim3';
end;

Si FileName no apunta al dir de los gif. No hace nada, si se corrige el path la l�nea GifAnim1.LoadFromLazarusResource('Anim1'); produce el siguiente error:

Project letras raised exception class 'External:SIGSEGV'

las otras dos l�neas de c�digo no hacen nada. Cada vez peor. Voy investigar un poco m�s sobre el componente haber si consigo algo. Si hay suerte publico el resultado.

Un saludo y muchas gracias.

El 4 de agosto de 2011 21:50, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 42 lines
Hello Anxo, Thursday, August 4, 2011, 8:34:37 PM, you wrote: AV> La aplicaci�n se instala en /opt , all� se puede ver la carpeta principal y AV> las dem�s, entre ellas /imaxes que contiene todas las images. Es propiedad AV> del usuario que la instala y tiene permisos R/W/X. Siguiendo tu sugerencia AV> prob� a crearlo con todos lo permisos "777" y tambi�n hice un paquete como AV> root, el resultado siempre el mismo, el .gif animado no funciona. En la AV> misma carpeta hay alg�n .png y un .gif con el logo de lazarus que se ven AV> perfectamente. Prob� windows haciendo la instalaci�n con installjammer o AV> ejecutando directamente funcionan. Por cierto, prodr�as explicarme lo que es AV> filemon y como funciona. Pues la verdad es que no se me ocurre que puede ser, excepto un problema de permisos. Puedes abrir el componente wile64 y donde abre el fichero (buscas los if FileExists(...)) a�ades un msgbox o algo para saber que est� pasando. O compilas con informaci�n de debug y lo ejecutas, una vez instalado, con el gdb, apuntas la linea del FileExists y pones u breakpoint ahi, luego un "inspect" de la variable, pero esto parece un poco lioso la verdad. Sobre filemon ahora se llama "Process Inspector" http://technet.microsoft.com/en-us/sysinternals/bb896645 -- Best regards, Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20110806/8f71e79f/attachment.html>

Reply by email

José Mejuto
to Anxo Vázquez

Hello Anxo,

Saturday, August 6, 2011, 11:43:45 AM, you wrote:

AV>   Anim1 := ExtractFilePath(ParamStr(0))+'/imaxes/letrasult.gif';

ParamStr(0) en Linux no tiene por qu� apuntar a la carpeta donde est� el programa, de hecho ParamStr(0) no deber�a usarse en Linux, s�lo en casos excepcionales y como "fallback" en caso de que el resto falle.

AV>   GifAnim1.LoadFromLazarusResource('Anim1');

Para usar esto deber�as haber creado el "resource" antes usando la utilidad "LazRes" en la carpeta Tools de Lazarus.

LazRes gifsanimados.lrs letrasult.gif demo.gif profesor.gif

Esto generar� un archivo "gifanimados.lrs" que debes incluir en tu .lpr:

<------------------------------------------------>
program prueba;
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, LResources;
begin
  {$I gifsanimados.lrs}
  Application.Title:='Mi titulo';
  Application.Initialize;
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
end.
<------------------------------------------------>

Ahora si puedes cargarlo con LoadFromLazarusResource:

GifAnim1.LoadFromLazarusResource('profesor');
Best regards, Jos�

Reply by email

Anxo Vázquez
to José Mejuto

Hola Jos�:

Gracias por tus respuestas y por tu tiempo. Tienes raz�n, cuando se instala el componente gifanim instala tambi�n un ejemplo del manejo. Encontr� la soluci�n reasignando el path de los gifs en el evento Activate del Form as�:

procedure TfrmCifLet.FormActivate(Sender: TObject);
var Anim1,Anim2,Anim3:String;
begin
  Anim1 := ExtractFilePath(ParamStr(0))+'/imaxes/letrasult.gif';
  gifAnim1.FileName := Anim1;
  Anim2 := ExtractFilePath(ParamStr(0))+'/imaxes/demo.gif';
  gifAnim2.FileName := Anim2;
  Anim3 := ExtractFilePath(ParamStr(0))+'/imaxes/profesor.gif';
  gifAnim3.FileName := Anim3;
end;

No entiendo porque esto s�lo es necesario para los paquetes .deb y.rpm.

Sempre cre� que ExtractFilePath(ParamStr(0) devuelv�a el path de $HOME. Nunca me dio problemas al contrario.

Un saludo y gracias de nuvo.

El 6 de agosto de 2011 12:17, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 53 lines
Hello Anxo, Saturday, August 6, 2011, 11:43:45 AM, you wrote: AV> Anim1 := ExtractFilePath(ParamStr(0))+'/imaxes/letrasult.gif'; ParamStr(0) en Linux no tiene por qu� apuntar a la carpeta donde est� el programa, de hecho ParamStr(0) no deber�a usarse en Linux, s�lo en casos excepcionales y como "fallback" en caso de que el resto falle. AV> GifAnim1.LoadFromLazarusResource('Anim1'); Para usar esto deber�as haber creado el "resource" antes usando la utilidad "LazRes" en la carpeta Tools de Lazarus. LazRes gifsanimados.lrs letrasult.gif demo.gif profesor.gif Esto generar� un archivo "gifanimados.lrs" que debes incluir en tu .lpr: <------------------------------------------------> program prueba; uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset Forms, LResources; begin {$I gifsanimados.lrs} Application.Title:='Mi titulo'; Application.Initialize; Application.CreateForm(TfrmMain, frmMain); Application.Run; end. <------------------------------------------------> Ahora si puedes cargarlo con LoadFromLazarusResource: GifAnim1.LoadFromLazarusResource('profesor'); -- Best regards, Jos� _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20110806/7c8a53fb/attachment.html>

Reply by email