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 :

[1.8.2 Linux/Windows] Bugs de l'OpenPictureDialog EDIT : ou plutôt de l'unité Graphics


Sujet :

Lazarus Pascal

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut [1.8.2 Linux/Windows] Bugs de l'OpenPictureDialog EDIT : ou plutôt de l'unité Graphics
    Bonjour,

    au lancement d'un programme de test j'ai un bouton pour faire afficher un OpenPictureDialog pour lequel j'ai explicitement demandé la preview dans l'EDI (ofAutoPreview à True) et malgré ça, lors du 1er clic sur le bouton la BdD s'affiche sans le panneau de preview :
    Nom : 1re_ouverture_W.png
Affichages : 537
Taille : 23,3 Ko

    Je clique sur "Annuler", je reclique sur le bouton et là, par magie (tu vois bien, Gilles, ), le panneau est présent et fonctionnel :
    Nom : 2e_ouverture_W.png
Affichages : 515
Taille : 24,9 Ko

    Plus qu'à cliquer sur un fichier image :
    Nom : preview_balle.png
Affichages : 504
Taille : 26,9 Ko

    Ceci est le 1er bug car, vous l'aurez noté, j'ai bien écrit bugs dans le titre.

    Le second est plus vicieux : supposons que je parcoure une arborescence de dossiers et que dans l'un d'eux il y ait un fichier incompatible1 avec Lazarus ; à partir de là, la preview ne fonctionne plus, et l'annulation de la BdD génère parfois une insulte "Access Violation".
    Des fois je peux reprendre la main sur le prog, des fois non (freeze), des fois il se ferme carrément sans autre forme de procès.

    À une époque j'avais essayé de jeter un œil dans le code de l'OPD mais c'est un plat de spaghetti (pour moi).
    ---
    1 : je dis bien "incompatible avec Lazarus" car le fichier qui met la pagaille s'ouvre correctement avec les différents outils de Linux comme de XP.

    Bon week-end prolongé,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Le second est plus vicieux : supposons que je parcoure une arborescence de dossiers et que dans l'un d'eux il y ait un fichier incompatible1 avec Lazarus ; à partir de là, la preview ne fonctionne plus, et l'annulation de la BdD génère parfois une insulte "Access Violation".
    Des fois je peux reprendre la main sur le prog, des fois non (freeze), des fois il se ferme carrément sans autre forme de procès.
    ---
    1 : je dis bien "incompatible avec Lazarus" car le fichier qui met la pagaille s'ouvre correctement avec les différents outils de Linux comme de XP.
    Bonjour,

    Je reviens 5 minutes là-dessus car je viens de découvrir un truc hallucinant !

    Le problème n'est pas dans le TOpenPictureDialog mais dans l'unité Graphics, sans doute.

    Comment je l'ai trouvé ? En reprenant un vieux projet développé avec la librairie Vampyre, qui utilise pour l'une de ses démos un bête TOpenPictureDialog, qui a fonctionné comme prévu : prévisualisation ok, ouverture de fichier RAS.

    N'en croyant pas mes yeux, j'ai créé à toute allure un nouveau projet avec juste un TButton, un TOpenPictureDialog, et 1 ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if opd.Execute then ShowMessage('ok');
    end;
    et ça a fonctionné tip-top !
    J'ai commenté Graphics dans uses, ça ne l'a pas perturbé, j'ai repris le projet Vampyre, ai fait une recherche sur le mot Graphics dans tous les fichiers du projet, ça n'a été trouvé que 2 fois (mainform et aboutform, au début du uses, ça sent le "fichier / nouvelle fiche" dont on ne modifie pas les paramètres de base), je les ai commentées, aucun problème.

    Cette même simple ligne de code dans mon gros projet en cours et bam !
    Preview en vrac, runtime error (204) ou autres insultes. Hélas, commenter Graphics dans ce projet empêche la compilation.
    Et même problème avec BGRAbitmap, qui s'appuie également sur Graphics.

    On avait suspecté des problèmes dans cette unité Graphics, avec l'ami BeanzMaster il y a quelques temps, et ça semble se confirmer...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Bonjour Jipété,

    J'ai bien lu tes messages, mais ils manquent d'infos à mon avis. C'est peut-être Graphics, mais dans ce que tu décris, rien ne le prouve.

    Pour ce qui est du composant OPD, il fonctionne bien chez moi sous Windows avec l'option incriminée : mais j'ai fait comme toi, en n'écrivant qu'une ligne de code .

    Qu'appelles-tu fichier incompatible avec Lazarus ? C'est pour le faire planter

    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Bonsoir, Gilles,
    Citation Envoyé par gvasseur58 Voir le message
    J'ai bien lu tes messages, mais ils manquent d'infos à mon avis. C'est peut-être Graphics, mais dans ce que tu décris, rien ne le prouve.
    et merci de me harceler, c'est pour mon bien et pour creuser ce problème vraiment bizarre :

    Nouveau projet, un TButton, un TImage et un TOpenPictureDialog.
    Graphics en commentaires dans la section uses.

    d'abord test 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      opd.Execute; // juste l'opd, preview ok
    end;
    puis test 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      //opd.Execute; // juste l'opd, preview ok
      if opd.Execute then image1.Picture.LoadFromFile(opd.FileName); // preview ok + image1 bien chargée
    end;
    et enfin test 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      //opd.Execute; // juste l'opd, preview ok
      if opd.Execute then image1.Picture.LoadFromFile(opd.FileName); // preview ok + image1 bien chargée
      // v3 ajout de AnimatedGif dans uses et exécution --> au clic sur le nom du fichier RunError(204) + invalid pointer operation
    end;
    Je commente et décommente l'ajout de cette unité et un fichier plante la boîte de dialogue ou pas.
    Si crash, un clic sur "Pause" envoie à la ligne 616 de AnimatedGif, va falloir que j'aille farfouiller dans ce .pas avec zéro ligne de commentaire, stay tuned...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Bonsoir Jipété once again,

    Citation Envoyé par Jipété Voir le message
    et merci de me harceler, c'est pour mon bien et pour creuser ce problème vraiment bizarre
    Je ne voudrais surtout pas te harceler . Mais bon, si tu penses que c'est pour la bonne cause... En fait, je cherche ce qui ne fonctionne pas, tout comme toi, pour voir si l'on peut l'améliorer.

    Citation Envoyé par Jipété Voir le message
    et enfin test 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      //opd.Execute; // juste l'opd, preview ok
      if opd.Execute then image1.Picture.LoadFromFile(opd.FileName); // preview ok + image1 bien chargée
      // v3 ajout de AnimatedGif dans uses et exécution --> au clic sur le nom du fichier RunError(204) + invalid pointer operation
    end;
    Je commente et décommente l'ajout de cette unité et un fichier plante la boîte de dialogue ou pas.
    Si crash, un clic sur "Pause" envoie à la ligne 616 de AnimatedGif, va falloir que j'aille farfouiller dans ce .pas avec zéro ligne de commentaire, stay tuned...
    Je comprends le principe, mais je ne sais pas où tu as récupéré cette unité AnimatedGIF. Peux-tu proposer un lien ? Sinon, je ne peux pas reproduire l'erreur.

    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  6. #6
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut

    Citation Envoyé par Jipété Voir le message
    On avait suspecté des problèmes dans cette unité Graphics, avec l'ami BeanzMaster il y a quelques temps, et ça semble se confirmer...
    Si seulement ce n'était que là

    Citation Envoyé par gvasseur58 Voir le message
    Bonsoir Jipété once again,

    Je comprends le principe, mais je ne sais pas où tu as récupéré cette unité AnimatedGIF. Peux-tu proposer un lien ? Sinon, je ne peux pas reproduire l'erreur.

    Gilles
    AnimatedGIF est l'unité "Standalone" qui correspond a l'unité BGRAAnimatedGif de BGRABitmap tu peux la télécharger ici : http://lazarus.johann-elsass.net/animatedgif.zip et le programme test ici : http://lazarus.johann-elsass.net/testgif.zip

    Pour le programme test il faut commenter l'inclusion des fichiers resources dans le lpr. Sinon chez moi le projet test fonctionne parfaitement.

    Citation Envoyé par Jipété Voir le message

    Nouveau projet, un TButton, un TImage et un TOpenPictureDialog.
    Graphics en commentaires dans la section uses.

    et enfin test 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      //opd.Execute; // juste l'opd, preview ok
      if opd.Execute then image1.Picture.LoadFromFile(opd.FileName); // preview ok + image1 bien chargée
      // v3 ajout de AnimatedGif dans uses et exécution --> au clic sur le nom du fichier RunError(204) + invalid pointer operation
    end;
    Je commente et décommente l'ajout de cette unité et un fichier plante la boîte de dialogue ou pas.
    Si crash, un clic sur "Pause" envoie à la ligne 616 de AnimatedGif, va falloir que j'aille farfouiller dans ce .pas avec zéro ligne de commentaire, stay tuned...
    Je viens de tester sous Windows avec ou sans l'unité "Graphics", et avec ou sans "AnimatedGIF" dans les uses. Dans les 4 cas les GIF sont chargés et affichés. Je vais tester sous Linux pour vérifier.

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    AnimatedGIF est l'unité "Standalone" qui correspond à l'unité BGRAAnimatedGif de BGRABitmap
    Ah, je ne me souvenais plus que les deux étaient liés.

    Citation Envoyé par BeanzMaster Voir le message
    Pour le programme test il faut commenter l'inclusion des fichiers resources dans le lpr. Sinon chez moi le projet test fonctionne parfaitement.
    J'ai donc suivi ton lien pour télécharger testgif.zip, l'ai décompacté, ai fait une microscopique modif pour que ça compile sous Linux (MemBitmap.pas ligne 154 : ,gdk2,gtkDef, gtkProc --> ,gdk2,gtk2Def, gtk2Proc), l'ai exécuté et tout va bien sauf ce fichier maudit donc j'ai déjà parlé, que tous les autres logiciels acceptent (même un construit avec le vieux compo TGifAnim [qui a hélas d'autres soucis] de Wile64) sauf ceux construits avec AnimatedGif -- et en plus je ne peux pas fournir ce fichier.

    Citation Envoyé par BeanzMaster Voir le message
    Je viens de tester sous Windows avec ou sans l'unité "Graphics", et avec ou sans "AnimatedGIF" dans les uses. Dans les 4 cas les GIF sont chargés et affichés. Je vais tester sous Linux pour vérifier.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jipété Voir le message
    J'ai donc suivi ton lien pour télécharger testgif.zip, l'ai décompacté, ai fait une microscopique modif pour que ça compile sous Linux (MemBitmap.pas ligne 154 : ,gdk2,gtkDef, gtkProc --> ,gdk2,gtk2Def, gtk2Proc), l'ai exécuté et tout va bien sauf ce fichier maudit donc j'ai déjà parlé, que tous les autres logiciels acceptent (même un construit avec le vieux compo TGifAnim [qui a hélas d'autres soucis] de Wile64) sauf ceux construits avec AnimatedGif -- et en plus je ne peux pas fournir ce fichier.
    Pourquoi tu ne peux pas fournir ce maudit fichier ? Cela me fait penser à un vieux truc du format gif, c'est un gif87a ou gif89a ? le format de ton fichier n'est peut-être tout simplement pas supporté. (notes le type du fichier est decrit pas les 6 premiers octets GIF87a ou GIF89a) La seule solution qu'il restera si c'est ça c'est de le convertir.
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    Cela me fait penser à un vieux truc du format gif, c'est un gif87a ou gif89a ? le format de ton fichier n'est peut-être tout simplement pas supporté. (notes le type du fichier est decrit pas les 6 premiers octets GIF87a ou GIF89a) La seule solution qu'il restera si c'est ça c'est de le convertir.
    89a, et je te rappelle que tous les autres logiciels l'ouvrent sauf ceux créés avec AnimatedGif, et ça fait planter l'OpenPictureDialog. Si j'utilise OpenDialog (sans preview, donc), c'est l'appli qui plante.


    ImageJ : pas d'animation (c'est peut-être normal) mais l'image1 est correcte
    ImageMagick : 1re image ok, les autres sont moches
    Visionneur d'images Lxde : ok, ras, preview ok
    Navigateurs : ok, ras.
    The Gimp : ouvert comme des images individuelles, preview ok
    XnView dans XP : ok, ras, preview ok
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  10. #10
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jipété Voir le message
    89a, et je te rappelle que tous les autres logiciels l'ouvrent sauf ceux créés avec AnimatedGif, et ça fait planter l'OpenPictureDialog. Si j'utilise OpenDialog (sans preview, donc), c'est l'appli qui plante.
    Faudrait que tu m'expliques comment tu as créé tes images avec AnimatedGIF pour le coup ???? car la sauvegarde n'est pas possible
    Ok tes autres logiciels l'ouvre c'est ok, mais cela ne veux pas dire que ton fichier est 100% correcte.
    Dans l'unité il y a surement un petit quelques chose lors de la lecture du fichier qui coince. C'est comme moi j'ai plein de fichiers au format BMP (pas bon à 100% ) que FPC/Lazarus n'est pas capable d'ouvrir. Alors que j'en suis capable avec ma solution et qu'un tas de logiciels comme XNview en sont également capable. Les erreurs peuvent être minime et ne sont pas forcément dans les données de l'image elle même. (tu te souviens de l'histoire du "GapSize" pour le format BMP ?)

    AnimatedGIF étant l'ancêtre de BGRABitmapGIF (celle-ci est surement à jour, il y a surement du y avoir des changements depuis) il serait bon de l'utiliser à la place. Je jetterai un oeil demain pour voir si c'est facile de faire une version "StandAlone". Et j'essayerai de comparer avec les spécifications du format GIF., Il y'a surement un petit quelque chose qui met le bazar. Dans tous les cas cela me sera bénéfique. Je l'incorporai dans ma solution par la même occasion

    Sinon tu n'as pas répondu? Pourquoi tu ne peux pas fournir ce GIF qui te poses problème ? Ca aiderait.

    Sur ce, bonne nuit
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  11. #11
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 938
    Points : 9 250
    Points
    9 250
    Par défaut
    hello,
    d'après ce que j'ai compris topenpicturefiledialog descend de la classe tpreviewfiledialog donc c'est lazarus qui doit se charger de la prévisualisation des fichiers image si on valide l'option de prévisualisation. SI lazarus a des difficultés à lire le fichier image choisi (soit qu'il ne sait pas ou soit qu'il tente mais ne réussit pas) il y a des fortes chances qu'il y ait un plantage ou une non visualisation. Les gifs animés ne font pas partie des fichiers que sait lire Lazarus.
    Ami calmant, J.P (sans T)
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Hi !
    Citation Envoyé par BeanzMaster Voir le message
    Faudrait que tu m'expliques comment tu as créé tes images avec AnimatedGIF pour le coup ????

    le fichier ce n'est pas moi qui l'ai créé, je l'ai pécho sur le web, et j'ai constaté après dl que je ne pouvais pas l'ouvrir avec un code bâti sur AnimatedGif alors qu'un code bâti sur le composant TGifAnim l'ouvre.

    Citation Envoyé par BeanzMaster Voir le message
    AnimatedGIF étant l'ancêtre de BGRABitmapGIF (celle-ci est surement à jour, il y a surement dû y avoir des changements depuis) il serait bon de l'utiliser à la place.
    Ben c'est bien ce que je fais (et que j'explique [mal ?] depuis le début) : le code bâti sur AnimatedGif ouvre bien les fichiers d'exemple (diddl, la balle, etc.), encore heureux !

    Citation Envoyé par BeanzMaster Voir le message
    Sinon tu n'as pas répondu? Pourquoi tu ne peux pas fournir ce GIF qui te poses problème ? Ca aiderait.
    Gros fichier un peu chaud bouillant trouvé sur un site hum-hum, mais c'est là qu'on peut trouver des fichiers lourds susceptibles d'avoir des défauts (trop facile de tester avec des fichiers comme diddl qui n'a que 2 images et doit peser 10 ko).

    Citation Envoyé par jurassic pork Voir le message
    SI lazarus a des difficultés à lire le fichier image choisi (soit qu'il ne sait pas ou soit qu'il tente mais ne réussit pas) il y a des fortes chances qu'il y ait un plantage ou une non visualisation. Les gifs animés ne font pas partie des fichiers que sait lire Lazarus.
    "Les gifs animés ne font pas partie des fichiers que sait lire Lazarus." d'où mes tentatives avec des compos third party (j'ai également tenté avec la Vampyre Imaging Library, mais c'est un immonde bazar ou alors faut gérer l'animation à la mano sauf que l'information cruciale, le Delay, n'est pas disponible... Nawak ! Mais ça fonctionne, mal concernant le délai)

    Ceci étant dit, la preview de l'OpenPictureDialog fonctionne, en fournissant la première image trouvée dans le gif.

    À moi :
    La chose que je ne comprends pas et que tout le monde a zappée, c'est que si je me contente de rajouter AnimatedGif dans la section uses du projet sans y appeler de code, le simple fait de cliquer sur le fichier "incompatible" génère RunError(204) + invalid pointer operation.


    Partant de là je viens de regarder à nouveau le code d'AnimatedGif, et la seule chose qui puisse causer le souci sans que j'y appelle du code c'est un truc qui se passe dans mon dos, et en effet, tout en bas du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    initialization
     
      //Free Pascal Image
      ImageHandlers.RegisterImageReader ('Animated GIF', TAnimatedGif.GetFileExtensions, TFPReaderGIF);
     
      //Lazarus Picture
      TPicture.RegisterFileFormat(TAnimatedGif.GetFileExtensions,'Animated GIF', TAnimatedGif);
    end.
    Si je commente la seconde ligne et que je garde la première active, la preview ne plante plus !
    Si je commente la première et que je garde la seconde active, la preview plante. On avance : à quoi ces deux lignes peuvent-elles bien servir ?
    Qu'est-ce qu'elles rajoutent comme trucs et machins qui font que la preview plante si la seconde est présente ?

    Et à quoi peuvent-elles bien servir si je peux ouvrir le fichier sans AnimatedGif (et sans animation, du coup) ? Car d'après l'aide, la seconde aurait un rapport avec LoadFromFile (pas d'aide pour la première).
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Tiens, j'ai trouvé un fichier pas trop lourd, et qui me cause un SIGSEGV à l'affichage :

    2gifs.zip

    Et que ce soit avec l'OpenPictureDialog (dont la preview fonctionne bien) ou l'OpenDialog tout court (à qui j'ai demandé AutoPreview dans les options de l'EDI mais ça n'est pas pris en compte).

    Il me suffit de commenter la seconde ligne d'initialisation (voir post précédent) pour m'affranchir de l'erreur, erreur qui ne se produit pas avec Animaux-0.gif
    Correction : avec ce fichier Animaux-0.gif, le sigsegv se produit à la fermeture du programme.
    Correction de la correction : se produit maintenant également à l'ouverture...
    Mais pas à tous les coups : encore de l'informatique aléatoire, ma préférée,

    Pas besoin d'acheter un ordinateur quantique, le mien l'est déjà,

    EDIT : les deux fichiers du zip n'ont aucun problème avec le compo TGifAnim dont j'ai déjà parlé.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut Attention avec les téléchargements.
    Il y a un mystère (pour moi) sur la page du compo TGifAnim : quand on regarde les fichiers, dans le dossier gifanim/gifanim on trouve bien les fichiers correspondant au compo TGifAnim, mais on trouve aussi un dossier testgif qui a l'air de correspondre au TAnimatedGif dont je n'arrête pas de parler.

    Et rien pour l'indiquer...

    Ne vous faites pas de nœuds !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  15. #15
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Hi !


    Partant de là je viens de regarder à nouveau le code d'AnimatedGif, et la seule chose qui puisse causer le souci sans que j'y appelle du code c'est un truc qui se passe dans mon dos, et en effet, tout en bas du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    initialization
     
      //Free Pascal Image
      ImageHandlers.RegisterImageReader ('Animated GIF', TAnimatedGif.GetFileExtensions, TFPReaderGIF);
     
      //Lazarus Picture
      TPicture.RegisterFileFormat(TAnimatedGif.GetFileExtensions,'Animated GIF', TAnimatedGif);
    end.
    Si je commente la seconde ligne et que je garde la première active, la preview ne plante plus !
    Si je commente la première et que je garde la seconde active, la preview plante. On avance : à quoi ces deux lignes peuvent-elles bien servir ?
    Qu'est-ce qu'elles rajoutent comme trucs et machins qui font que la preview plante si la seconde est présente ?

    Et à quoi peuvent-elles bien servir si je peux ouvrir le fichier sans AnimatedGif (et sans animation, du coup) ? Car d'après l'aide, la seconde aurait un rapport avec LoadFromFile (pas d'aide pour la première).
    La première ligne déclare que FPImage doit utiliser TFPReaderGIF pas obligatoire d'ailleurs, car elle est également présente dans FPReadGIF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    initialization
      ImageHandlers.RegisterImageReader ('GIF Graphics', 'gif', TFPReaderGif);
    La seconde ligne déclare à Lazarus qu'il peux également utiliser AnimatedGIF

    Nom : opdgif.jpg
Affichages : 420
Taille : 38,3 Ko

    Citation Envoyé par Jipété Voir le message
    Tiens, j'ai trouvé un fichier pas trop lourd, et qui me cause un SIGSEGV à l'affichage :


    Et que ce soit avec l'OpenPictureDialog (dont la preview fonctionne bien) ou l'OpenDialog tout court (à qui j'ai demandé AutoPreview dans les options de l'EDI mais ça n'est pas pris en compte).

    Il me suffit de commenter la seconde ligne d'initialisation (voir post précédent) pour m'affranchir de l'erreur, erreur qui ne se produit pas avec Animaux-0.gif
    Correction : avec ce fichier Animaux-0.gif, le sigsegv se produit à la fermeture du programme.
    Correction de la correction : se produit maintenant également à l'ouverture...
    Mais pas à tous les coups : encore de l'informatique aléatoire, ma préférée,

    Pas besoin d'acheter un ordinateur quantique, le mien l'est déjà,

    EDIT : les deux fichiers du zip n'ont aucun problème avec le compo TGifAnim dont j'ai déjà parlé.
    De mon coté je n'ai pas eu ce problème avec animaux-0.gif (par contre pas pu tester ta seconde image elle n'y est pas dans le zip)

    J'ai testé avec d'autre GIF qui plante avec AnimatedGIF mais pas avec la solution native de FPC/Lazarus

    Je pense qu'il y a conflit avec les GIFs et l'utilisation d'unité tierces comme c'est le cas ici avec AnimatedGIF.

    En ce qui concernent le composant TGIFAnim celui-ci charge l'image par ces propres moyens sans passer par FPReadGIF ou autres classe comme TGIFImage qui est déclarée dans l'unité Graphics. L'OpenPictureDialog lui utilise forcément les unités de FPC et Lazarus. D'après ce que j'ai pu voir vite fait dans le code. La cause est la mauvaise gestion des erreurs dans le code de FPReadGIF et dans Graphics.
    Tout comme le format BMP, le code pour lire format GIF n'est pas implémenté correctement . La meilleur gestion des erreurs dans FPC/Lazarus est encore celle pour les images JPEG elle n'est pas parfaite, mais à le mérite de lever des exceptions au lieux de te balancer des SIGSegv et autres messages d'insultes.
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    De mon coté je n'ai pas eu ce problème avec animaux-0.gif (par contre pas pu tester ta seconde image elle n'y est pas dans le zip)
    Tu plaisantes, j'espère ?

    Nom : 2gifs.png
Affichages : 414
Taille : 36,1 Ko
    Image prise après avoir téléchargé le fichier en cliquant sur le lien que j'ai fourni, comme si j'étais n'importe qui. Et "clic droit / extraire ici" m'a bien posé deux fichiers "ici".

    Citation Envoyé par BeanzMaster Voir le message
    J'ai testé avec d'autre GIF qui plante avec AnimatedGIF mais pas avec la solution native de FPC/Lazarus
    Solution native ? Aurais-je loupé un épisode ? Dis-m'en plus, stp.

    Citation Envoyé par BeanzMaster Voir le message
    En ce qui concernent le composant TGIFAnim celui-ci charge l'image par ces propres moyens sans passer par FPReadGIF ou autres classe comme TGIFImage qui est déclarée dans l'unité Graphics.
    Alors lui il me gonfle je te dis pas !
    Impossible de faire fonctionner un composant créé dynamiquement, le seul capable d'afficher des images c'est un compo pris dans la palette de compos et posé sur la fiche...
    Hallucinant.
    En plus, charger des images les unes derrière les autres ça ne va pas : l'image "n" s'affiche avec les dimensions de l'image "n-1", et je n'arrive pas à trouver le pourquoi du comment.


    De mon côté, j'ai dégotté un truc sympa sur un forum espagnol, mais qui date de 2010, résultat, bien que la chose soit certifiée pour Lazarus, il y a de gros problèmes de dézippage (ou autres) qui se manifestent par des images incomplètes.
    Sous Windows, parce que sous Linux, après avoir remplacé les CopyMemory(dest source size) par des Move(source dest size) c'est du grand n'importe quoi : images juste pleines de bruits (pixels multicolores) et c'est tout.
    Pour les curieux, c'est là, en bas, mais pas le .rar : il faut être enregistré...
    Remontez un poil au-dessus. C'est commenté en espagnol, mais compréhensible.

    Ce qui est rigolo avec ce truc, c'est qu'il enregistre bien les images qu'il affiche mal,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Alors lui il me gonfle [le TGifAnim] je te dis pas !
    Impossible de faire fonctionner un composant créé dynamiquement, le seul capable d'afficher des images c'est un compo pris dans la palette de compos et posé sur la fiche...
    Hallucinant.
    En plus, charger des images les unes derrière les autres ça ne va pas : l'image "n" s'affiche avec les dimensions de l'image "n-1", et je n'arrive pas à trouver le pourquoi du comment.
    Réglé son principal problème suite à détection d'un simple oubli (à force d'avoir le nez sur le guidon, on en oublie de regarder le paysage, c'est bien connu) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.btnBrowseClick(Sender: TObject);
    begin
      if not opd.Execute then exit; // previews ok
     
      if ga <> nil then FreeAndNil(ga);
     
      ga:= TGifAnim.Create(Self);
      with ga do begin
        Parent   := Form1; // ! \ <<<--- l'oubli !
        Left     := 150;
        Top      := 20;
        FileName := opd.FileName;
      end;
    end;
    Et du coup ce composant fonctionne du feu de Dieu, sauf un méchant problème de Invalid Palette Index (255) avec 1 fichier, pas le même que jusqu'à présent, et le pire c'est que je ne vois pas où cette valeur est calculée, que la pile d'appels me montre que le contrôle et la remontée de l'erreur c'est dans fppalette.inc mais qu'un point d'arrêt à l'endroit qui va bien n'arrête rien du tout...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  18. #18
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 938
    Points : 9 250
    Points
    9 250
    Par défaut
    hello,
    Citation Envoyé par Jipété Voir le message
    sauf ce fichier maudit donc j'ai déjà parlé, que tous les autres logiciels acceptent (même un construit avec le vieux compo TGifAnim [qui a hélas d'autres soucis] de Wile64) sauf ceux construits avec AnimatedGif -- et en plus je ne peux pas fournir ce fichier.
    utilises-tu la dernière version TGifAnim de aducom qui est ici ?

    Ami calmant, J.P(sans T)
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Salut J.P,
    Citation Envoyé par jurassic pork Voir le message
    utilises-tu la dernière version TGifAnim de aducom qui est ici ?
    Celle avec le dossier testgif dont j'ai parlé hier à 11 h 06 ?
    Oui oui.
    Par ailleurs, je ne suis pas sûr que ça soit la dernière version, au sens plusieurs versions qui se suivent, avec des modifs et des corrections, mais plutôt la seule disponible, puisqu'il est bien expliqué dans le readme.md que le site de l'auteur a disparu.

    Donc merci à celui qui a créé cette page github, reste plus qu'à trouver ce bug, lié à un fichier bien précis (encore ! Mais c'est la loose ces gif's) et qui s'affiche comm' d'hab' très bien avec d'autres outils,

    Nom : bug_index_255.png
Affichages : 395
Taille : 18,4 Ko

    malheureusement pour moi, quand je clique sur "Pause" et qu'il me "tombe" ça, je suis comme une poule qui aurait trouvé un couteau...

    Nom : debug_machine.png
Affichages : 426
Taille : 96,9 Ko

    De mes tests en pas-à-pas, il semblerait que l'erreur survienne pendant l'exécution de la fonction LoadFromLazarusResource (ligne 615), en sortie on dirait, mais je ne vois rien là-dedans qui fasse référence à un quelconque comptage de palette.

    Plus intéressant : l'historique des sauts (ou des déplacements, selon qu'on regarde le menu "Voir" ou le titre de la fenêtre) où l'on voit bien que ça se passe dans cette fonction,

    Nom : historique_sauts.png
Affichages : 411
Taille : 74,3 Ko

    que je vais fouiller de fond en comble, car la "pile d'appels" c'est pas cool :

    Nom : pile_d_appels.png
Affichages : 390
Taille : 24,9 Ko

    juste que ça confirme ce que je disais hier soir : le check est dans fppalette.inc mais ne supporte pas un point d'arrêt.

    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  20. #20
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 938
    Points : 9 250
    Points
    9 250
    Par défaut
    hello,
    il existe un autre composant pour visualiser des gifs animés , c'est le THTMLviewer (ou TFrameViewer) qui se trouve dans le paquet HTMLViewer ( disponible dans les paquets en ligne) :
    Nom : htmlviewer.gif
Affichages : 518
Taille : 134,6 Ko
    exemple de code pour charger une image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Bt_loadClick(Sender: TObject);
    begin
      if OpenDialog.Execute then
      begin
        Viewer.LoadFromFile(OpenDialog.Filename);
      end;
    end;
    Le souci c'est que ça n'a pas l'air très rapide à charger et que l'on ne peut pas facilement étirer ou réduire l'image dans le composant.
    En pièce jointe le gif animé google.

    Ami calmant, J.P (sans T)
    Images attachées Images attachées  
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

Discussions similaires

  1. [Lazarus] [Linux/Windows] Bug de Canvas.Rectangle ou mauvaise utilisation ?
    Par Jipété dans le forum Lazarus
    Réponses: 5
    Dernier message: 22/06/2018, 11h43
  2. Logiciel pr emulation d'autres OS ( linux, windows...)
    Par elitost dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 14/07/2005, 18h16
  3. snmp linux windows
    Par Aramis dans le forum Développement
    Réponses: 2
    Dernier message: 20/06/2005, 00h39
  4. Réponses: 13
    Dernier message: 13/03/2005, 21h56
  5. Les fichiers sous linux/windows
    Par Stessy dans le forum Linux
    Réponses: 5
    Dernier message: 05/12/2003, 10h30

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