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

C++Builder Discussion :

Conserver l'affichage pendant les calculs ?


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 150
    Par défaut Conserver l'affichage pendant les calculs ?
    Débutant C++, j’ai eu la surprise de voir disparaître mes fenêtres pendant les calculs un peu longs (quelques secondes) que je demandais. J’ai eu beau chercher dans l’help, je n’ai rien trouvé à ce sujet. J’ai finalement résolu mon problème en découpant les calculs en petits morceaux très courts, chaque morceau déclenchant un timer, lui aussi très court, qui à son tour lançait le morceau de calcul suivant.

    J’ai interprété ce phénomène en me disant que peut-être le système avait besoin d’avoir la main de temps en temps pour rafraîchir l’écran.

    Comme je suis coutumier des calculs scientifiques un peu longs, je trouve pénible de devoir chaque fois penser à ne prévoir que de courtes périodes de calcul s’enchaînant avec des timers. N’existe-t-il pas un moyen de demander au système de gérer lui-même ces interruptions pour qu’il continue à afficher l’écran comme il convient pendant de longs calculs ? (je parle de calculs qui penvent durer entre quelques secondes et quelques heures !).

  2. #2
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 90
    Par défaut
    On peut savoir qui type de calcules? , et se quoi se base t’il?
    ciao

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 90
    Par défaut
    On peut savoir qui type de calcules? , et se quoi se base t’il?
    ciao

  4. #4
    Membre éprouvé
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Par défaut
    Je vois 2 solutions à ton soucis :
    - solution légère : au cours de ton calcul fais régulièrement un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application->ProcessMessages()
    ou bien appelle le rafraichissement de ta fenêtre principale
    - solution lourde : réalise tes calculs dans un thread à part

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 150
    Par défaut Merci bebeours
    Merci mille fois bebeours ! Je pense que la "solution légère" est très exactement ce que je cherchais.

    Cela m'amène à des questions subsidiaires :

    1 - "régulièrement" veut dire toutes les millisecondes, après chaque période de 100 milliseconde, ou un autre timing ?

    2 - Il m'arrive aussi parfois, après que j'ai remplacé la flèche du curseur par un sablier, et que j'ai fini mes calculs, et que j'ai à nouveau remplacé le sablier du curseur par une flèche, de constater que le sablier reste éternellement sur l'écran jusqu'à ce que j'ai touché la souris. Penses-tu que Application->ProcessMessages() va résoudre également ce problème ?

    3 - Je ne sais pas ce que c'est "un thread à part" ! Est-ce la création d'une nouvelle "form" ?

    Merci de ton aide

  6. #6
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 150
    Par défaut Gros calculs
    Citation Envoyé par rachef
    On peut savoir qui type de calcules? , et se quoi se base t’il?
    ciao
    Le problème est apparu lorsque j'ai fait un jeu de cartes. Tout bêtement, j'ai créé une centaine de fenêtres. Je n'ai constaté rien de spécial sur mon PC récent à 2 GHz, mais lorsque j'ai porté le jeu sur un vieux PC à 233 MHz je me suis aperçu que l'image disparaissait pour plusieurs secondes. J'ai trouvé cela plutôt gênant.

    Ce n'est pas vraiment du calcul, mais ça m'a gêné dans le principe surtout pour d'autres programmes que je pourrais être amené à faire. Ça peut être par exemple un calcul de traitement d'images, qui typiquement demande pas mal de calcul, ça peut être un travail sur les .wav qui sont souvent gigantesques également. Récemment, j'ai résolu un système de 2,5 millions d'équations à 2,5 millions d'inconnues. Heureusement, c'était un système "bande" ce qui fait qu'il n'y a eu que 13000 milliards d'opérations à faire, mais il m'a fallu quand même un peu moins de trente et une heures pour en venir à bout...J'avais fait un "expert console" pour traiter cela dans une fenêtre "invite de commandes", car évidemment, il n'y avait aucun intérêt à garder une fenêtre interactive sur l'écran pendant ce temps.

    Sans aller jusque là, je pense qu'une interruption d'image même de dix secondes est intolérable pour un jeu interactif...

    @+

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

Discussions similaires

  1. thread pour affichage pendant calcul
    Par xasmxasm dans le forum C++Builder
    Réponses: 1
    Dernier message: 06/06/2008, 23h02
  2. affichage degradé des fenetres pendant les operations
    Par korben06 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/09/2007, 13h04
  3. separer l affichage et les calculs
    Par ggwal dans le forum OpenGL
    Réponses: 9
    Dernier message: 03/03/2006, 11h29
  4. Fenetre de prgression pendant un calcul
    Par Drizzt [Drone38] dans le forum MFC
    Réponses: 3
    Dernier message: 02/06/2004, 15h21

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