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 :

Appel de procédure


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 41
    Points
    41
    Par défaut Appel de procédure
    bonjour,

    j'ai quelques soucis sur mon application

    en effet, le programme attend une information, et quand il la reçoit, il doit executer un ordre en conséquence.

    cependant il n'execute pas cet ordre :S

    j'ai donc testé un buttonClick pointant sur l'ordre, et la ça marche, et pourtant le programme qui a reçu l'information execute normalement (d'après le breakpoint) cet ordre.


    j'ai ensuite testé ceci :

    créer un timer qui execute l'ordre, et se désactive juste après,
    et activer le timer quand l'information est reçue par le programme.
    ET LA JE SAIS PAS DU TOUT POURQUOI MAIS CA MARCHE !!

    je ne comprend plus rien


    merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    Sans code, cela va être difficile. peux-tu mettre le code correspondant à ta procédure et à l'information qu'il attend ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 41
    Points
    41
    Par défaut
    ok alors le serveur attend une information venant d'un TServerSocket

    cela donne ceci dans le OnClientRead :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if data_read='close'
      then application.terminate;
    et donc quand j'envoie "close" avec mon client, rien ne se passe.

    maintenant si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if data_read='close'
      then timer1.enabled:=true;
    et que dans le timerExecute je met :
    alors la, l'application va se terminer.

    bref, je trouve ça hallucinant

  4. #4
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    En effet c'est hallucinant, mais parfois il y a des bizarreries dans la compilation.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 41
    Points
    41
    Par défaut
    bah en fait je pense que en fonction de si c'est l'utilisateur qui appelle directement application.terminate, ça sera différent que si on attend un événement.

    enfin je ne comprend pas trop pourquoi.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Ce n'est pas un problème de compilation. Regarde le code de Application.Terminate. La procédure demande l'envoi d'un fermeture à l'application elle-même. Il ne s'agit donc pas d'une fermeture immédiate et synchrone de l'application, mais d'une demande de fermeture postée à elle-même. D'où plusieurs conséquence : si Application.Terminate est appellée depuis un second thread, le message est envoyé à la file de message du second thread (donc, pas celle de l'application), et dans tous les cas l'application doit être en capacité d'être quittée (je crois me souvenir par exemple que l'affichage modal d'une fenêtre empêche par exemple cette action) pour que cela fonctionne.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 41
    Points
    41
    Par défaut
    mmm ok je vois, mais du coup comment puis-je fermer mon application lorsque je reçois un message, sans utiliser de timer ?

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Je ne connais pas le composant réseau que tu utilises, mais s'il encapsule la réception dans un thread auxiliaire, tu peux essayer ca pour demander la fermeture de l'application depuis le thread principal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TThread.Synchronize(nil, Application.Terminate);
    Sinon, fermeture de la fenêtre principale (Close), Halt, ExitProcess, etc.

Discussions similaires

  1. [appeler une procédure stockée]
    Par viny dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 10/03/2005, 22h38
  2. Appel de Procédure stockée en ASP
    Par James85 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 14/11/2004, 17h55
  3. Appel de procédure par contenu de variable
    Par lil_jam63 dans le forum Langage
    Réponses: 9
    Dernier message: 13/09/2004, 08h05
  4. Appel de procédure dans une page ASP
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 02/04/2004, 16h59
  5. Appel de procédure...
    Par AmaX dans le forum Langage
    Réponses: 4
    Dernier message: 24/11/2002, 17h48

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