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

Composants VCL Delphi Discussion :

utilisation de plusieurs timer.


Sujet :

Composants VCL Delphi

  1. #1
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut utilisation de plusieurs timer.
    Bonsoir,

    Dans mon application, je doit instancier des "Tabsheet" pour chaque famille de produits, chaque "Tabsheet" est composé entre autres d'un "Timer" et un "StringGrid", le timeur effectue des calcules en accédant a une base de données MS SQL SERVER et fait des update dans la "StringGrid" ainsi que dans une base de données pour chaque produit.

    Est ce que l'utilisation d'un "Timer" dans ce cas de figure est conseillé? si non avez vous une idée pour une probable solution?

    Merci

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    C'est probablement la solution facile
    le thread pouvant être peu plus efficace mais nécessite des précautions

    Tu peux essayer de mettre un seule Timer (ou Thread) qui lance régulièrement une serie de requête de mise à jour ...

    Bon comme c'est compliqué ce que j'ai en tête je te donne un exemple

    Grille 1 s'ouvre, elle s'enregistre auprès du RefreshManager (elle passe l'objet à rafraichir, un Query par exemple et sa fréquence)
    Dans le Timer du RefreshManager, il y a un objet à rafraichir, le Timer se lance par exemple toutes les 5 ms et consulte la liste de objets à rafraichir, comme il stocke la dernière date de refresh et le délai, il peut prédire l'heure de la prochaine execution

    Grille 2 s'ouvre, elle s'enregistre auprès du RefreshManager avec une autre fréquence ...
    Idem, le Timer parcourt la liste des objets, et donc peut lancer les refresh ...

    Si tu as 20 onglets, tu n'auras qu'un timer qui regroupe tout, deplus si certains objets sans en commun, cela peut réduire le nombre de requête ...

    Timer, une TList suffira (ou la TObjectList aussi à Owned à false)
    Thread, une TThreadList sera mieux

    Après la question pourquoi une TStringGrid et non une TDBGrid ?

    Ensuite, étudier le mécanisme de SQL Server, voir si il propose des events (modification de l'une des tables de la requête par exemple)

    Enfin, un refresh permanent est-il utile ?
    Souvent on laisse l'utilisateur décidé d'un refresh surtout si cela modifie des données !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 939
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 939
    Par défaut
    Pour l'affichage, un seul timer suffit puisque qu'il n'y a de toute façon qu'un seul onglet visible à la fois .

    Mais le principe des mises à jour de la base de données ne me paraît pas bon. Qui dit serveur, dit en règle générale plusieurs clients. Vont-ils tous faire les mêmes contrôles et balancer les mêmes mises à jour ? Les conflits sont-ils gérés ? La surcharge du serveur ? etc.

Discussions similaires

  1. [Toutes versions] Problème utilisation de plusieurs Timer simultanément
    Par jems87 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/12/2012, 10h14
  2. Utilisation de plusieurs Timer Error
    Par christophe_halgand dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 24/07/2012, 22h11
  3. Application utilisable avec plusieurs SGBD - ADO ou DBX ?
    Par RamDevTeam dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/12/2004, 08h25
  4. [STRUTS] utilisation de plusieurs tags <html:subm
    Par Super Castor dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/06/2004, 11h42
  5. [struts] utilisation de plusieurs fichiers de config
    Par Boosters dans le forum Struts 1
    Réponses: 4
    Dernier message: 25/03/2004, 10h04

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