IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Gifs animés dans Lazarus [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Invité
    Invité(e)
    Par défaut Gifs animés dans Lazarus
    Bonjour.

    Tous les sujets relatifs aux GIFs et qu'on peut trouver dans Google sont antérieurs à la sortie de Lazarus 1.6. J'ai déjà réussi sans problème à charger un gif animé dans un composant image standard. Puis-je le faire "bouger" ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 169
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 169
    Par défaut
    Salut,
    Citation Envoyé par alberich Voir le message
    Tous les sujets relatifs aux GIFs et qu'on peut trouver dans Google sont antérieurs à la sortie de Lazarus 1.6. J'ai déjà réussi sans problème à charger un gif animé dans un composant image standard. Puis-je le faire "bouger" ?

    Merci d'avance
    Avec 1.6 je ne sais pas : je n'ai toujours pas migré... Avec 1.4 la réponse est oui, mais ça n'est pas aussi simple qu'on pourrait croire : en son temps j'ai trouvé un compo TGifAnim qui devrait pouvoir encore se trouver (enfin, j'espère : je n'ai pas cherché -- aide pour la recherche : Wile64 [c'est le nom de l'onglet d'installation]), mais ces choses (je parle au pluriel car sous Delphi il y a longtemps j'en avais testé d'autres) sont très sensibles à des GIF's mal formés et qui pourtant s'affichent bien dans le navigateur Internet...

    Exemple d'erreur : Classe d'exception FPImageException Invalid palette index 255. et pourtant il s'affiche bien avec le visualiseur d'images de mon Linux.
    Bon courage...

  3. #3
    Invité
    Invité(e)
    Par défaut Je suis désolé
    mais la compilation plante sur "GetControlClassDefaultSize".

    Tant pis, sans regrets si c'est un composant "à problèmes", et merci ...
    Dernière modification par Invité ; 14/07/2016 à 20h48.

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 176
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Je ne comprends pas pourquoi vous avez marqué la discussion comme "résolue" alors que manifestement elle ne l'est pas.

    Autrement, une solution pour afficher un GIF animé, c'est la bibliothèque BGRABitmap. J'ai trouvé un exemple fonctionnel sur le forum anglophone :

    http://forum.lazarus.freepascal.org/....html#msg98280

    Pour votre commodité, je l'attache à ce message. Je l'ai testé avec succès sous Windows, avec Lazarus 1.6.

    Voir aussi cet exemple donné par l'auteur de BGRABitmap lui-même :

    http://forum.lazarus.freepascal.org/...html#msg157566

    L'exemple est basé sur les composants BGRAControls, mais on peut quand même s'en inspirer.

    Bon courage !
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip gif.zip (66,5 Ko, 214 affichages)

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 252
    Par défaut
    Bonjour,

    Oui li ne faut peut-être pas abandonner si vite. J'avais rencontré un exemple que je viens de "déterrer" et vérifier sous Lazarus 1.6/fpc 3.0 en Win 7 et Mint 17.3 [32 tous les 2]. Dans ma base de données, il est noté qu'il y avait une petit erreur ligne 154 du MemBitmap.pas pour fonctionner sous Linux.

    Cordialement. AD
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut Résolu peut signifier "j'abandonne"
    Bonjour.

    Merci pour ta réponse, mais j'ai jeté un coup d'oeil, la mise en oeuvre est trop compliquée par rapport à l'usage que je veux en faire, juste afficher un LOGO animé sur la fiche d'un logiciel (dont l'unité principale ne fait même pas 210 lignes de déclarations et code, et qui se compose d'une image fixe, d'une led et d'un timer ! ) : l'animation ne fait absolument pas partie de l'usage principal .... Merci quand même.
    Dernière modification par Invité ; 14/07/2016 à 23h29.

  7. #7
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 169
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 169
    Par défaut
    Citation Envoyé par alberich Voir le message
    Résolu peut signifier "j'abandonne"
    Non, non et non !

    Quand on fait des recherches sur un mot-clé, on est toujours très content de voir des discussions "résolues", avec le sens premier qu'on donne à ce mot.
    Quelle déception quand on voit que ce n'est pas le cas...

    Alors oui, il y a longtemps, il y avait un bouton "délestage" pour supprimer des discussions jugées inutiles, mais ça devait faire trop de boulot aux modos et il a été supprimé.

    Donc quand ça n'est pas résolu, il ne faut pas cliquer sur "résolu", c'est tout !
    Tu re-cliques et ça l'enlève.

    Citation Envoyé par alberich Voir le message
    mais la compilation plante sur "GetControlClassDefaultSize".

    Tant pis, sans regrets si c'est un composant "à problèmes", et merci ...
    Saut que je n'ai pas trouvé cette chaîne de caractères en faisant une recherche dans les fichiers du projet...
    Et comme tu ne fournis pas l'erreur (et que ce comportement de newbie t'a déjà été signalé), on ne va pas aller loin...

  8. #8
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 169
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 169
    Par défaut
    Citation Envoyé par ApproxDev Voir le message
    Dans ma base de données, il est noté qu'il y avait une petit erreur ligne 154 du MemBitmap.pas pour fonctionner sous Linux.

    Cordialement. AD
    Dans mon MemBitmap.pas, des lignes 151 à 160, j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    uses FPWritePng, GraphType, LCLIntf, LCLType
    {$IFDEF LCLgtk2}
      {$DEFINE gtkbugfix}
      ,gdk2,gtk2Def, gtk2Proc
    {$ENDIF}
    {$IFDEF LCLgtk}
      {$DEFINE gtkbugfix}
      ,gdk,gtkDef, gtkProc
    {$ENDIF}
    ;
    Je suis sous Linux et ça fonctionne (du peu que j'en ai testé...)

  9. #9
    Invité
    Invité(e)
    Par défaut La ligne complète est :
    class function GetControlClassDefaultSize: TPoint; override;

    et elle se trouve dans gifanim.pas

    En fait, ce qui semblait poser problème, c'est le "override" : il n'y a rien à "overrider" ; étonnant que ce soit bloquant ...
    Après suppression du "override", plus de problème de compilation !

    Mais l'utilisation est relativement compliquée, sans commune mesure avec l'utilisation que je comptais en faire ... et malheureusement aussi avec GIFImage de Delphi (j'ai tenté une conversion puis compilation sans succès). Donc, stop !
    Dernière modification par Invité ; 15/07/2016 à 06h16.

  10. #10
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 169
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 169
    Par défaut
    Citation Envoyé par alberich Voir le message
    class function GetControlClassDefaultSize: TPoint; override;

    et elle se trouve dans gifanim.pas

    En fait, ce qui semblait poser problème, c'est le "override" : il n'y a rien à "overrider" ; étonnant que ce soit bloquant ...
    Après suppression du "override", plus de problème de compilation !
    Vu. C'est la fonction de recherche qui doit être chatouilleuse : quand je cherche dans "tous les fichiers du projet" elle ne trouve pas la string ; quand j'ouvre gifanim.pas et que je demande à chercher dans ce fichier, ça trouve...

    Et j'ai bien la mention "override", qui ne gène en rien la compilation, sous Linux.
    J'ai la version 1.4 de gifanim.pas --> class function GetControlClassDefaultSize: TSize; override;

  11. #11
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 176
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Jipété Voir le message
    J'ai la version 1.4 de gifanim.pas
    Mais pourquoi s'embêter avec ce code, qui est l'ancienne version de l'unité BGRAAnimatedGIF, laquelle fonctionne parfaitement et est activement maintenue ?

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 252
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Dans mon MemBitmap.pas, des lignes 151 à 160, j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    uses FPWritePng, GraphType, LCLIntf, LCLType
    {$IFDEF LCLgtk2}
      {$DEFINE gtkbugfix}
      ,gdk2,gtk2Def, gtk2Proc
    {$ENDIF}
    {$IFDEF LCLgtk}
      {$DEFINE gtkbugfix}
      ,gdk,gtkDef, gtkProc
    {$ENDIF}
    ;
    Je suis sous Linux et ça fonctionne (du peu que j'en ai testé...)
    Bonjour, tout à fait. Je l'avais corrigé (voir dans le zip).
    Cordialement. AD

  13. #13
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 169
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 169
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Mais pourquoi s'embêter avec ce code, qui est l'ancienne version de l'unité BGRAAnimatedGIF, laquelle fonctionne parfaitement et est activement maintenue ?
    Peut-être parce qu'à l'époque où j'ai fait mes recherches cela n'existait pas, ou juste au début, et tu sais comment ça se passe ensuite : tu archives, puis tu passes à autre chose, 5 ans plus tard quelqu'un en parle et ça réveille tes souvenirs, tu ressors tes vieux trucs et tu réalises que tu es complètement outdated, et voilà...

    Sans compter le fait que les contrôles BGRA (enfin, les miens) ne m'affichent pas ce composant dans leur palette : alors si en plus il faut deviner les choses, ça n'aide pas (sans compter que dans un des liens que tu donnes quelqu'un écrit en anglais comme d'autres ici en français : incompréhensible).

    Bon, quand j'ai 5 minutes je me pencherai à nouveau sur la question...

    Merci pour les liens, effectivement le .zip fonctionne
    avec cette modif pour Linux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //  FGif := TBGRAAnimatedGif.Create('ajax-loader.gif');
      FGif := TBGRAAnimatedGif.Create(ExtractFilePath(Application.ExeName)+ 'ajax-loader.gif');

  14. #14
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 176
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Merci pour les liens, effectivement le .zip fonctionne
    avec cette modif pour Linux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //  FGif := TBGRAAnimatedGif.Create('ajax-loader.gif');
      FGif := TBGRAAnimatedGif.Create(ExtractFilePath(Application.ExeName)+ 'ajax-loader.gif');
    Merci pour la modif Linux. Je la mets dans mes archives, ça peut toujours servir.

    Concernant BGRABitmap, je voudrais préciser une ou deux choses. D'abord BGRABitmap et BGRAControls sont deux choses différentes (quoique celle-ci soit basée sur celle-là). Personnellement, je n'utilise pas BGRAControls, parce que je n'en ai pas l'utilité. Le composant "virtual screen" (je ne sais plus son nom exact) est commode, mais tu peux le remplacer par trois lignes de code. BGRABitmap n'a pas de composant. Ce ne sont que des unités que tu déclares dans ton projet. Pour la commodité de l'utilisateur, l'auteur fournit un paquet (.lpk), que tu peux inclure dans le projet, mais tu n'as pas à reconstruire Lazarus. On peut utiliser BGRABitmap dans une application console Free Pascal, pourvu qu'on indique au compilateur le chemin des unités.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Forms Builder] Gif animé dans un module
    Par Diane L'Hérault dans le forum Forms
    Réponses: 15
    Dernier message: 07/08/2009, 18h14
  2. Lire un Gif animé dans un formulaire 4d 2004
    Par jolann69 dans le forum 4D
    Réponses: 4
    Dernier message: 16/06/2006, 12h26
  3. gif animé dans un formulaire
    Par rapace dans le forum IHM
    Réponses: 5
    Dernier message: 04/04/2006, 12h04
  4. GIF anime dans une JFrame
    Par BernardT dans le forum Agents de placement/Fenêtres
    Réponses: 12
    Dernier message: 16/08/2005, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo