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 :

Conversion d'un programme FireMonkey


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 061
    Par défaut Conversion d'un programme FireMonkey
    Bonjour,

    Voici l'original :

    Et sa version sous Lazarus :
    Nom : DWS-Lazarus.jpg
Affichages : 519
Taille : 79,2 Ko

    Petit défi du jour, convertir les sources Firemonkey du programme DWS TeraPixel Mandelbrot en source FPC / Lazarus.

    Ce programme n'utilise que le framework FMX, aucun composant spécifique sous Delphi ; par contre, ma version a besoin sous Lazarus du paquet INDY 10 et de BGRABitmap pour compiler.

    J'ai une première version fonctionnelle, mais du fait des différences entre l’architecture FMX et LCL, j'ai des petits soucis a l’exécution.

    Mon premier problème est quand je change le niveau de zoom, j'ai un effacement de l'image indésirable, il faudrait que je trouve le moyen de bloquer le rafraichissement soit du canvas d'un panel soit celui d'un BGRABitmap !

    Mon second souci est lié à Indy, si je suis en cours de chargement de tuile depuis le site et que je ferme le programme, j'ai un beau plantage du programme lié à Indy. N'étant pas un expert Indy, je n'ai pas trouvé comment le corriger !

    Ensuite, il restera à optimiser le programme car il y a une grosse différence de performances entre la version Delphi et la version Lazarus à la défaveur de ce dernier

    Si vous avez des idées ou des suggestions, voire des corrections, je suis preneur

    Dergen.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 166
    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 166
    Billets dans le blog
    9
    Par défaut
    Intéressant !

    Je crois qu'il manque le fichier formexplorer.lfm dans le ZIP que tu as posté.

  3. #3
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 061
    Par défaut
    Oups, voici le zip complet.

    Je me suis lancé ce défi, car le programme utiliser les génériques et les méthodes anonymes, que je pratique peu.

    Par contre il y a visiblement une grosse différence dans le fonctionnement des threads ou du composant iDHTTP entre Delphi et Lazarus, en effet, si on zoom trop vite, le programme plante.

    Voici la version Lazarus aux même coordonnées que l'original :

    Nom : Capture d’écran 2022-03-12 à 10.23.02.png
Affichages : 454
Taille : 351,5 Ko
    Fichiers attachés Fichiers attachés

  4. #4
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 061
    Par défaut
    J'ai résolu, le problème du rafraîchissement de l'image.

    Par contre, je sèche sur le problème qui fait planter le programme, si je zoom 2 fois de suite sans attendre la fin du chargement des tuiles.

    Si quelqu'un avait une idée de ce qui pourrait coincer, cela m'aiderait bien...
    Fichiers attachés Fichiers attachés

  5. #5
    Membre Expert
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    sans voir le code, il faudrait surement que tu annules le téléchargement des tuiles si celles-ci sont en cours, pour recharger les nouvelles en fonction de la valeur du nouveau zoom.
    Le mieux serait surement de "threader" les téléchargements ou de placer un drapeau pour savoir si les tuiles sont totalement chargées ou pas, qu'il suffira de tester.
    Ou de simplement inhiber le zoom tant que le téléchargement et l'affichage n'est pas fini.
    • "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

  6. #6
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 061
    Par défaut
    Si tu as le temps de regarder les sources que j’ai posté ici, tu verras que c’est comme cela que le programme fonctionne.

    Au niveau de la gestion des threads, il dois y avoir une différences entre Delphi et FPC que je ne maîtrise pas, qui provoque le plantage sous Lazarus.

Discussions similaires

  1. Conversion d'un programme C++ en Java
    Par nir63 dans le forum Général Java
    Réponses: 30
    Dernier message: 12/01/2014, 05h05
  2. Réponses: 5
    Dernier message: 12/12/2011, 09h55
  3. Conversion d'un programme Python en C++
    Par ZouBi dans le forum Réseau
    Réponses: 0
    Dernier message: 02/04/2010, 18h17
  4. conversion vers la programmation
    Par bastos77 dans le forum Etudes
    Réponses: 2
    Dernier message: 11/06/2007, 17h47
  5. Conversion d'un programme en C vers Delphi.
    Par jbrg dans le forum Delphi
    Réponses: 1
    Dernier message: 21/03/2007, 12h51

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