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

 Delphi Discussion :

Traitement Timer en Thread


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 20
    Points
    20
    Par défaut Traitement Timer en Thread
    Bonjour à tous,
    Désolé pour le titre, ce n'était pas évident de trouver quelque chose expliquant ma demande.
    En fait j'ai mon programme delphi permettant la saisie de données, et pendant ce temps j'affiche en temps réel (par intervalles de 2 sec), des positions GPS sur une carte Google Maps via un TWebBrowser.

    Soucis, à partir d'une 10aine de pts rafraichis toutes les 2 sec, la carte google maps ne suit pas ou le TWebbrowser, je ne sais pas.

    Du coup, je me disais qu'au lieu de faire un Timer 2 sec avec récupération des données en base et affichage des markers carto, je pouvais faire celà via Thread Delphi.

    Ma question : Est-ce que c'est la meilleure solution de faire celà ???
    Je précise je charge un ficheir map.html ou se trouve mes fonctions carto Google Maps et auxquelles j'accede via un HTMLWindow2.execScript();

    Merci pour vos solutions.

  2. #2
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Salut,

    Et la mémoire du process... ça donne quoi ? elle monte en flèche à chaque refresh ? redescend-elle ensuite ou ne fait-elle qu'augmenter ?

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 20
    Points
    20
    Par défaut
    Je confirme, elle monte en flèche à chaque refresh.
    Avant la connexion elle est a 7.6K, après connexion 65 Ko, premier rafraichissement 86 Ko et second 116 Ko ... j'en suis à 228Ko là au bout de quelques secondes.

    Tu penses à quoi ??? quelque chose de pas libérer ???
    Pourtant il y a bien les closes adéquates sur les requetes, je ne vois pas trop.
    Merci

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 20
    Points
    20
    Par défaut
    Je vois que tu parles du TWebgoogleMap sur ton blog.
    Est-il au point ??? que gagne-t-on avec ce composant ? Merci

  5. #5
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Bonjour,

    En fait normalement il ne faudrait pas raffraichir complètement la carte, mais appeler les fonctions javascript qui vont afficher les markers à chaque nouveau point lu dans la base de données.
    Voici un lien qui devrait t'aider :

    http://www.stevetrefethen.com/blog/U...plication.aspx

  6. #6
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Je pense que le TWebBrowser est pratique mais qu'il a des fuites mémoires.. lors de refresh, il a toujours fini par avoir sa taille qui augmente...
    Avec un load(navigate), c'est pire, mais ça doit être normal, puisque l'historique grossit...

    Donc, soit je ne sais pas m'en servir, soit l'activex a un soucis...

    Le TWebgoogleMap est un objet pratique, avec des propriétés, fonctions et événements... mais il ne sera dispo sur le marché qu'à partir de mi-septembre.. Thierry pourra t'en parler un peu plus si besoin...

    En fait, ce qui me fait peur, c'est quand tu parles d'un refresh toutes les 2s... ça va faire mal...
    J'ai une idée en tête mais pas sûre qu'elle soit bonne.. d'autres pourront dire si ça sert à rien ou si ça peut s'avérer utile :
    Avoir 2 variables TWebBrowser
    Afficher le premier
    Instancier et charger le second en invisible
    Afficher le second
    Détruire le premier, le recréer, le charger, l'afficher, ...
    et ainsi de suite.. (mais pas sûr que ça marche mieux)

  7. #7
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Citation Envoyé par Whiler Voir le message
    Le TWebgoogleMap est un objet pratique, avec des propriétés, fonctions et événements... mais il ne sera dispo sur le marché qu'à partir de mi-septembre.. Thierry pourra t'en parler un peu plus si besoin...
    En effet le composant a été complètement réécrit et il est basé sur la V3 de l'API de Google Maps et offre pleins de fonctions, propriétés, évènements déjà intégrés. Et comme le précise William il sera disponible à partir de la 2ème quinzaine de Septembre.

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 20
    Points
    20
    Par défaut
    Merci pour vos suggestions mais ca ne me fais pas avancé.
    En effet je ne reloade pas la map, je fais plutot des marker.setmap(null) pour libérer les marqueurs, c'est le meilleur moyen je pense.

    Quand au TWebBrowser et ses fuites, je ne peux pas passer par un autre composant pour afficher ma carte ??

    Merci à vous.

  9. #9
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Tu peux tester un TChromium.

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 20
    Points
    20
    Par défaut
    Ok je vais voir celà et tester.
    Sinon est-ce que le fait de loader une map Google sans une clé générée restreint les temps d'accès à Google Maps ?
    Merci

  11. #11
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Citation Envoyé par 2nd Floor Voir le message
    Ok je vais voir celà et tester.
    Sinon est-ce que le fait de loader une map Google sans une clé générée restreint les temps d'accès à Google Maps ?
    Merci
    En fait la V3 de google maps ne nécessite plus de clés d'API. Mais cela n'a pas d'impact sur des temps d'accès ou autres.

  12. #12
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 20
    Points
    20
    Par défaut
    Merci Thierry,
    Pour le TChromium, il me parait bien, rapide et tout. Mais impossible de trouver de la documentation sur internet ... des idées ?

  13. #13
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Voici l'intégralité de la doc : http://code.google.com/p/chromiumemb...i/GeneralUsage

  14. #14
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 20
    Points
    20
    Par défaut
    Ca c'est de la doc .
    J'essaye plein de choses mais je veux juste faire un ExecScript() de mes procédures javascript.

    Si quelqu'un trouve, U are welcome

  15. #15
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Regarde cette démo : \DCEF\demos\guiclient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      if crm.Browser <> nil then
        crm.Browser.MainFrame.ExecuteJavaScript(
          'alert(''JavaScript execute works!'');', 'about:blank', 0);

  16. #16
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 20
    Points
    20
    Par défaut
    Merci beaucoup, j'avais trouvé ça aussi.
    Au niveau rapidité on y gagne, au niveau mémoire on voit une grosse différence.

    Par contre celà n'empeche pas la mémoire de grimper grimper ... une idée pour libérer de la mémoire facilement ???

    Si on détruit le TChromium et qu'on le recharge, on y gagne ??? Merci

Discussions similaires

  1. [TJvTimer] Timer JVCL thread
    Par dvarrel dans le forum Composants VCL
    Réponses: 1
    Dernier message: 14/08/2008, 22h35
  2. JavaME : Timer et thread graphique
    Par ®om dans le forum Java ME
    Réponses: 5
    Dernier message: 31/01/2008, 15h31
  3. Actualisation périodique : timer ou thread ?
    Par Shredder dans le forum Langage
    Réponses: 12
    Dernier message: 02/11/2007, 08h52
  4. Un timer ? Plein de Timer ? un thread de control ?
    Par vincedom dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 12/06/2006, 13h18
  5. [MFC] Cherche Timer avec thread
    Par romeo9423 dans le forum MFC
    Réponses: 17
    Dernier message: 09/03/2005, 10h33

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