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 :

Progressbar dans une boucle


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Par défaut Progressbar dans une boucle
    Bonjour
    j'ai un import de données dans un dbgrid et je voudrais meubler par un progressbar comment dois je procéder?
    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
    datamodule4.correction.first;
    combobox2.Clear;
    repeat
    datamodule4.correction.Edit;
    datamodule4.correctionannee.Value:=form3.dbedit1.Text;
    combobox2.Items.add(datamodule4.correctionnom.value);
    datamodule4.correction.post;
    datamodule4.correction.next;
    until
    datamodule4.correction.Eof;
    filtre:='Classe='''+ '5' + '*''';
    datamodule4.correction.Filter:=filtre;
    datamodule4.correction.Filtered:=true;
    datamodule4.correction.First;
    repeat
    datamodule4.correction.Edit;
    datamodule4.correctionniveau.value:='5ème';
    datamodule4.correction.post;
    datamodule4.correction.Next;
    until
    datamodule4.correction.Eof;
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    j'ai un import de données dans un dbgrid
    Cela commence mal !
    Tu n'importe pas de données dans un DBGrid, car ce dernier ne contient pas de données, il ne fait que présenter les données d'un DataSet (via l'intermédiaire d'un DataSource)
    Je ne vois dans ton code, aucun import, juste un parcours et un recodage !

    tu pourrais indenter ton code
    datamodule4, combobox2, Form3... un nommage plus pertinent pourrait être utile !
    ton code est faux en plus ! tu ne vérifie pas le cas d'une table vide !

    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
    datamodule4.correction.first;
    // Max := RecordCount
    // Position := 0;
    // Step := 1;
     
    combobox2.Clear;
    while not datamodule4.correction.Eof do
    begin
      datamodule4.correction.Edit;
      datamodule4.correctionannee.Value:=form3.dbedit1.Text;
      combobox2.Items.add(datamodule4.correctionnom.value);
      datamodule4.correction.post;
      datamodule4.correction.next;
      // StepIt
    end;
     
    filtre:='Classe='''+ '5' + '*''';
    datamodule4.correction.Filter:=filtre;
    datamodule4.correction.Filtered:=true;
    // Max := RecordCount
    // Position := 0;
     
    datamodule4.correction.First;
    while not datamodule4.correction.Eof do
    begin
      datamodule4.correction.Edit;
      datamodule4.correctionniveau.value:='5ème';
      datamodule4.correction.post;
      datamodule4.correction.Next;
      // StepIt
    end;
    Ensuite, tu pourrais proposer une tentative, combobox2 m'indique que tu as mis ce code problablement dans une Form, il te suffit d'ajouter une TProgressBar dans cette Form, utiliser RecorcCount pour définir Max, mettre Step à 1, et StepIt() après chaque Next !
    Il n'y a aucune difficulté !
    Je te laisse écrire le code (avec tous mes indices), nous t'aiderons à le corriger si nécessaire
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Expert confirmé
    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 : 62
    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
    Par défaut
    Salut

    Dis, l'indentation d'un code n'est pas luxe et évite nombres d'erreurs pendant son écriture et facilite sa lecture.
    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
    with DataModule4.Correction do
    begin
      First;
      ComboBox2.Clear;
      repeat
        Edit;
        CorrectionAnnee.Value := Form3.DBEdit1.Text;
        ComboBox2.Items.Add(CorrectionNom.Value);
        Post;
        Next;
      until Eof;
     
      Filtre := 'Classe='''+ '5' + '*''';
      Filter := Filtre;
      Filtered := True;
      First;
      repeat
        Edit;
        CorrectionNiveau.Value := '5ème';
        Post;
        Next;
      until Eof;
    end;
    N'est-pas mieux ?

    Ensuite à ta place, au lieu d'inclure un ProgressBar dans ce traitement, j'utiliserais SQL pour faire tes mises à jours. Elle seront beaucoup efficaces et donc rapides. Donc plus besoin de ProgressBar.

    @+ Claudius

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Par défaut
    Merci mille fois pour ton aide tout fonctionne à merveille!!
    et je vais essayer d'améliorer mes codes à l'avenir.

    Bonne journée.

Discussions similaires

  1. [MFC] afficher une ProgressBar dans une barre d'etat
    Par guillaume21 dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2007, 11h16
  2. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19
  3. swf dans une boucle asp
    Par Chucky69 dans le forum Flash
    Réponses: 11
    Dernier message: 10/02/2004, 17h07
  4. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 14h37
  5. Pause dans une boucle
    Par HT dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2003, 08h52

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