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 :

Rafraichir une fenetre malgré un CPU à 100 % ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut Rafraichir une fenetre malgré un CPU à 100 % ?
    Bonjour,

    Je debute en programmation Pascal Objet, et cela fait depuis 1999 que je n'ai plus programmé avec un langage objet. Autant dire que je redécouvre.

    Voila, je suis en train de faire un petit programme, avec une interface toute simple : 1 bouton, 4 ou 5 labels et 4 ou 5 edits.

    Le programme lance de gros calculs quand j'appuie sur le bouton, et mes edits sont sensés me servir à voir certains résultats de variables pendant le calcul (qui peut durer très longtemps (plusieurs minutes)). Toutes les x secondes, je rafraichis la valeurs des edits. Or comme le CPU est au taquet à 100 %, et bien mes edits ne se rafraichissent pas et pire, si je clique sur une autre appli, quand je reviens sur mon programme, la fenetre principale n'est pas affichée correctement (fenetre blanche, ou avec des parties manquantes, si elle a été partiellement masquée par une autre appli).

    Alors j'en viens à la question, que faire pour "forcer" ces rafraîchissements ?

    Peut-être faut-il que je stoppe les calculs x millisecondes toutes les y secondes pour permettre au programme de rafraichir les éléments graphiques ?

    Merci pour votre aide.

    A+

  2. #2
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Salut et bienvenue sur le forum,

    Essaye de placer un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ProcessMessage
    de temps en temps (genre toutes les X boucles de ton calcul). Ca devrait suffire à priori.

    A+.

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut
    Le vilain compilateur me met :

    "Identificateur non déclaré : 'ProcessMessage'"

    Il faut peut-être que je rajoute quelque chose dans la partie uses, non ?

  4. #4
    Membre expérimenté
    Profil pro
    DEV
    Inscrit en
    Août 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DEV

    Informations forums :
    Inscription : Août 2006
    Messages : 182
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ProcessMessages;

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut
    Super, merci beaucoup

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    pour apporter une réponse complétementaire

    je te conseillerai de lancer ta procédure consommatrice en CPU dans un thread séparé. Tu géreras la partie IHM au niveau de ta classe TThread par des appels à synchronize. Ce sera bcq plus propre que des appels à des refresh de l'affichage.

    Ainsi tu pourras aussi éviter l'effet 'figé' voir bloquant de ton interface

    c'est une idée au passage de ce post

    @

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

Discussions similaires

  1. [A-00] Rafraichir une fenetre A
    Par yepAccess dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/10/2008, 17h14
  2. Rafraichir une fenetre parent par la fermeture d'un popup
    Par loleske dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 19/05/2006, 08h14
  3. Redessiner (rafraichir) une fenetre
    Par @drien dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 17/01/2006, 21h59
  4. Rafraichir une fenetre ??
    Par MonsieurAk dans le forum Windows
    Réponses: 8
    Dernier message: 09/08/2005, 15h04
  5. [API] Rafraichir une fenetre ?
    Par laurent_h dans le forum Windows
    Réponses: 2
    Dernier message: 17/04/2004, 23h26

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