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 :

Comment faire patienter un programme ?


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Comment faire patienter un programme ?
    Bonjour,
    j'ai afficher une image en cours de programme par un clic sur un bouton.
    au bout d'un temps donné je l'efface jusque là pas de pb.
    Mon problème :
    un autre bouton peut lancer la même procédure avec un autre paramètre pour l'image et la j'ai un bug puisque le premier n'a pas eu le temps de libérer la mémoire (avec free) ou même de la cacher (avec hide).
    Les plus experts avez-vous une idée, je fais des progrès mais j'ai encore besoin de vous !
    jlouis

  2. #2
    Expert éminent sénior
    Pas ficle de répondre sans savoir ce que tu fais avec les images...

    Voici une ou deux idées comme ça :
    - Au moment de la deuxième procédure, termine de suite la première si elle est en cours.
    - Bloque l'accès aux autres boutons tant que le premier n'a pas fini.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  3. #3
    Membre à l'essai
    tentative de clarification
    C'est un rograme pour des enfants qui affiche des images , le fait de cliquer sur un bouton "6" par exemple entoure six éléments sur l'image ...
    le pb c'est comment bloquer les autres boutons pour que six ne se mélange pas avec 7...
    je suis dans un Panel et je charge par loadfromfile l'image *.png
    j'attends par une boucle avec application.processMessages
    puis je la cache et je la detruis par free.
    est-ce plus clair ?
    Qu'en penses tu ?
    jlouis

  4. #4
    Membre habitué
    Ca ne change rien : dans la ou les procédures qui gèrent l'événement On_Click des boutons, tu peux faire passer toutes les propriétés Enabled de ces boutons à False et tu les remets à True dès que les éléments ont bien été entourés.

  5. #5
    Membre à l'essai
    merci ca marche
    Je n'y avais pas pensé, faut dire que je suis vraiment pas un pro !
    merci de ton aide
    jlouis