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 :

Attendre une information dans une boucle


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 397
    Points : 165
    Points
    165
    Par défaut Attendre une information dans une boucle
    Bonjour,

    j'ai une boucle "for ... begin end;" dans cette boucle je dois afficher des info et attendre la validation.

    Le problème c'est qu'actuellement c'est la dernière information qui s'affiche.
    Comment suspendre la boucle à chaque item pour attendre la validation ?

    Merci

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Un petit bout de code à nous soumettre ?

  3. #3
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 397
    Points : 165
    Points
    165
    Par défaut
    Voila c'est une petite appli pour gérer les comptes perso et là c'est un module qui récupère des fichiers qui représentent des prélèvements automatiques.
    A chaque ouverture d'un compte je vérifie s'il y a des prélèvements à prendre en compte

    avec le bout de code ci-dessous je veux afficher les données de chaque fichier de prélèvement et attendre la validation pour effectuer la mise à jour du fichier général

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    procedure prelevement();
    var
    i:integer;
    freq:string;
    begin
     
    if MessageDlg('Il y a des prélèvements automatiques en attente, voulez vous les mettre à jour '+'?',
           mtConfirmation,[mbYes,mbNo],0)=mrYes
       then
       begin
          compte.Panel38.Visible:=true;
          for i:=1 to nb_prelev do
          begin
           AssignFile(fich_aut,tab_prelev[i]);Reset(fich_aut);
           seek(fich_aut,1);Read(fich_aut,enregauto);
           seek(fich_aut,enregauto.index);Read(fich_aut,enregauto);
           if enregauto.frequence=1 then freq:='Tout les mois';
           if enregauto.frequence=2 then freq:='Tout les 2 mois';
           if enregauto.frequence=3 then freq:='Tout les 3 mois';
           if enregauto.frequence=4 then freq:='Tout les 4 mois';
           if enregauto.frequence=5 then freq:='Tout les 5 mois';
           if enregauto.frequence=6 then freq:='Tout les 6 mois';
           if enregauto.frequence=7 then freq:='Tout les 7 mois';
           if enregauto.frequence=8 then freq:='Tout les 8 mois';
           if enregauto.frequence=9 then freq:='Tout les 9 mois';
           if enregauto.frequence=10 then freq:='Tout les 10 mois';
           if enregauto.frequence=11 then freq:='Tout les 11 mois';
           if enregauto.frequence=12 then freq:='Tout les ans';
           compte.label70.Caption:=enregauto.nom_prelev;
           compte.Label65.Caption:=freq;
           compte.edit11.Text:=CurrToStr(enregauto.montant);
           compte.Label67.Caption:='Le '+IntToStr(enregauto.jour)+' du mois';
           compte.Label76.Caption:=DateToStr(enregauto.date_prelev);
     
     
           end;
       end; // fin de if MessageDlg
    end;// fin de procedure;

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Une 1° remarque sur ton code: la série de if (pour définir la variable Freq) peut-être remplacé par un case, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          case EnregAuto.Frequence of
            1:
              Freq := 'Tout les mois';
            2..11:
              Freq := Format('Tous les %d mois', [EnregAuto.Frequence]);
            12:
              Freq := 'Tous les ans';
          end;
    Ensuite pour rafraichir un Label, un Edit, ... pendant le déroulement d'une procédure/fonction, tu peux appeler la méthode Update de ce contrôle - ou celle de la fiche pour rafraichir d'un coup tous les contrôles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Label1.Update;  // Rafraichir le caption du TLabel
    A noter que nommer tes labels Label65, Label70, etc n'est pas une bonne habitude. Donne leurs des noms plus explicites, cela facilite la lecture du code et donc sa maintenance.


    Ensuite tu dis:
    Citation Envoyé par michel71
    avec le bout de code ci-dessous je veux afficher les données de chaque fichier de prélèvement et attendre la validation pour effectuer la mise à jour du fichier général
    Je ne vois aucun traitement de validation ou quelque chose du genre. Tu passes en revue ton fichier de prélèvement, mets à jour ton interface mais rien de plus.
    Ton code présenté est entier ?

    @+ Claudius

  5. #5
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 397
    Points : 165
    Points
    165
    Par défaut
    Bonsoir,

    merci pour les remarques je vais en tenir compte.
    Le rafraichissement des labels n'ai pas vraiment mon problème, enfin je pense.

    Le traitement doit se faire dans ce panel


    Ce qui implique que j'affiche dans mon panel les données du premier fichier rencontré dans la boucle "FOR" je valide ou pas (le traitement se faisant dans la procédure du bouton OK (pour l'instant je n'ai rien écrit). Puis j'affiche les données du second fichier je valide ou pas et ainsi de suite. il faut donc que j'ai un moyen de mettre la boucle "FOR" en pause entre chaque affichage et validation

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    L'architecture du traitement semble prendre en travers la programmation événementielle

    Comment est appelée la proc prelevement ?
    Le screen-shot fourni est le panel38 ?

  7. #7
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 397
    Points : 165
    Points
    165
    Par défaut
    Effectivement je crois que je suis parti dans une mauvaise direction.
    Désolé pour le dérangement.
    Merci

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

Discussions similaires

  1. Récupérer une information d'une ligne dans une table
    Par Lebas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/04/2013, 10h24
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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