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

Langage Delphi Discussion :

probleme de delais


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut probleme de delais
    Hello, voila mon probleme : J'ai un bout de code qui crée des enregistrements dans une table paradox et je voudrais que quand le programme écrit dans la table il affiche le form3 mais qu'il l'affiche au minimum 4 secondes même si le programme met moins de temps à écrire dans la table.

    Vu que je suis presque sur que mon programme ne mettra jamais plus de 5 secondes à écrire dans la table je m'étais dit que je pouvais uttiliser un sleep qui attend d'office 5 seconde et j'avais écrit ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
    form3.show;
    form1.Hide;
      Table1.Open;
      Table1.Last;
      d := Table1.FieldByName('complet').AsDateTime + 1;
      Edit1.text:=datetostr(d);
      annee := Yearof(d)+1;
      While YearOf(d) < annee do
      begin
         Table1.append;
          Table1.FieldByName('complet').AsDateTime := d;
         Table1.Post;
         d := d + 1;
      end;
      Table1.Close;
    sleep(5*1000);
    form3.Hide;
    form1.Show;
    end;
    Seulement voila, la form3 s'ouvre sans problème mais les deux Label qui sont dedans ne s'affichent pas ! Je ne comprends pas pourquoi !

  2. #2
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    bonjour,

    essaye de mettre un Application.ProcessMessages avant le sleep.

    @++
    Dany

  3. #3
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    Oui mais j'aimerais surtout comprendre ce qui se passe

  4. #4
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    simplement le sleep est bloquant, donc les messages windows qui n'ont pas le temps d'être traité avant restent en attente jusqu'à la fin du sleep. Application.processmessages force le traitement des messages en attente à ce moment là.

    @++
    Dany

  5. #5
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    Ah ok et ca s'uttilise comment ? parceque j'ai tappé ca dans l'aide de Delphi et j'ai pas trouvé

  6. #6
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    ben c'est pas compliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    procedure TForm1.BitBtn1Click(Sender: TObject); 
    begin 
    form3.show; 
    form1.Hide; 
    Application.ProcessMessages; <-- ICI
      Table1.Open; 
      Table1.Last; 
      d := Table1.FieldByName('complet').AsDateTime + 1; 
      Edit1.text:=datetostr(d); 
      annee := Yearof(d)+1; 
      While YearOf(d) < annee do 
      begin 
         Table1.append; 
          Table1.FieldByName('complet').AsDateTime := d; 
         Table1.Post; 
         d := d + 1; 
      end; 
      Table1.Close; 
    sleep(5*1000); 
    form3.Hide; 
    form1.Show; 
    end;
    @++
    Dany

  7. #7
    Membre averti
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 016
    Points : 308
    Points
    308
    Par défaut
    Ah ben oui c'est tout con mais il fallait le savoir ! Merci

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

Discussions similaires

  1. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 18h07
  2. Réponses: 2
    Dernier message: 30/05/2002, 08h54
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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