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 :

Problème avec une DLL dans une boucle For


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Problème avec une DLL dans une boucle For
    Bonjour,

    j'utilise une dll (AffichDial1) qui compose un appel téléphonique et qui joue un fichier wav sur le modem dans 2 boucles for imbriquées.

    le problème est qu'il sort de la seconde boucle (après AffichDial1 et ne fait pas le DataModule1.ClientDataSetQueryParam.Next) et continue sur la première.

    voici le code :

    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
     
    For i:=0 to Z do
    begin
       FaireRequeteQueryParam('SELECT * FROM AppelPhone WHERE indexligne='+IntToStr((i+1)*100)+' AND IndexAppel='+IntToStr(TabLignes[i].lAction[7].Option1)+'');
       n:=DataModule1.ClientDataSetQueryParam.RecordCount;
       if n>0 then
       begin
          DataModule1.ClientDataSetQueryParam.First;
          For j:=0 to n-1 do
          begin
             NumAppel:=DataModule1.ClientDataSetQueryParam.FieldByName('NumAppel').AsString;
             FichierWav:=DataModule1.ClientDataSetQueryParam.FieldByName('FichierWav').AsString;
             AffichDial1(TrameDial1+NumAppel+'='+Chemin+'\'+TabLignes[i].lligne+'\'+FichierWav);
             DataModule1.ClientDataSetQueryParam.Next;
           end;
       end;
    end;

  2. #2
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Tu as testé la valeur de n?

    Peux être que tu as un problème avec tes requêtes plus qu'avec tes boucles

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    En fait, pour i=0, n=2; AffichDial1 est lancé une premère fois. dans la procedure de dll correspondant à AffichDial1, je fais un create et c'est là qu'il sort et qu'il revient à i=2 sans faire le j=1 tout de suite. Par contre, dès qu'il a fini la procedure de dll correspondant à AffichDial1, il revient sur "DataModule1.ClientDataSetQueryParam.Next;" mais entre temps il a lancé d'autres requête et le recordcount vaut 0 alors qu'il valait 2 avant.

    Bizarre, Bizarre,

  4. #4
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Je ne comprends pas bien là, i passe de 0 à 2 juste après AffDial1 ? Si c'est le cas, il y a un problème de réentrance je pense.

    Précises un peu que je te suives mieux.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    un problème de Raie en Trance?? je plaisante
    En fait, i passe de 0 à 1 sans faire le fin de sa boucle ("DataModule1.ClientDataSetQueryParam.Next;")

  6. #6
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    C'est impossible, garanti par le langage.

    Comment déduis-tu qu'il n'exécute pas la fin de la boucle?

Discussions similaires

  1. Problème avec API OutText dans une DLL
    Par KlausGunther dans le forum API, COM et SDKs
    Réponses: 20
    Dernier message: 11/05/2014, 15h55
  2. Problème avec un Timage dans une DLL
    Par colorid dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2011, 12h04
  3. Réponses: 9
    Dernier message: 09/12/2008, 00h07
  4. utiliser une dll dans une dll
    Par anthonycosson dans le forum MFC
    Réponses: 2
    Dernier message: 09/05/2006, 21h42
  5. Problèmes avec un TWebBrowser dans une DLL
    Par bellamyjc dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/01/2005, 22h35

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