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 :

[D2005 VLC] Valeur de retour d'une application


Sujet :

Langage Delphi

  1. #1
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut [D2005 VLC] Valeur de retour d'une application
    Bonjour,

    Comment mettre une valeur de retour à une application (et comment la récuperer) ?

    Style les applications C qui on un return dans le main.

    Merci d'avance.
    David.

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 152
    Points
    10 152
    Par défaut
    La routine système Halt termine immédiatement le programme en utilisant le code de retour passé en paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    program Project1;
     
    uses
      Forms,
      Unit1;
     
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
      Halt(CodeDeRetour);
    end.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    Bonjour sjrd,

    Il n'y a pas beaucoup d'aide à propos de cette methode.

    J'ai bien fait un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var
      ret: integer;
     
    begin
      Application.Initialize;
      Application.Title := 'GT_D2R';
      Application.CreateForm(TfrmMain, frmMain);
      Application.Run;
      Halt(ret);
    end;
    Mais pas moyen d'avoir accès à la variable ret dans la form.
    David.

  4. #4
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    c un pb de portée.
    soit tu déclare ret dans la partie interface de l'unité contenant TfrmMain
    soit tu créé une unité dédié

    unité "Common" =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    unit Common;
     
    interface
      var ret : integer;
    implementation
    end.
    et tu l'ajoute dans la clause uses de la partie implementation de ta form

  5. #5
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    Ok merci RamDevTeam.

    Un dernier point:
    Sait-tu comment récupérer cette valeur (dans un batch par exemple) ?
    David.

  6. #6
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Dans un .bat ou .cmd =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IF ERRORLEVEL 5 GOTO CAS_5
    IF ERRORLEVEL 4 GOTO CAS_4
     
    etc...
    Attention : Tester les codes dans l'odre décroissant car Errorlevel x renvoi vrai si le code retour est supérieur ou égal à x

  7. #7
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    Merci RamDevTeam, t'es un chef !

    Voici ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LecturePortsCom.exe ?1
    echo %ERRORLEVEL%
    en fait, j'ai fait un executable qui permet de retourner un certain port com.
    Et je le récupère comme ça (je me sert de la sortie d'erreur pour récuperer mes infos), est ce mal ?

    (Je voulais vraiment faire un exe autonome pour pouvoir l'utiliser depuis plusieurs applications différentes)
    David.

  8. #8
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Pour l'utiliser dans différentes appli, pourquoi tu ne fais pas une DLL ?
    tu évite ainsi l'utilisation d'un fichier de commande.


    Fichier >> Nouveau >> Autre... >> Expert de DLL


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {$R *.res}
     
    Exports 
     GetPortCom;
    ensuite tu créé une unité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    unit MaGestionPortCom;
     
     
    interface
    function GetPortCom(Value : byte) : byte; stdcall;
     
    implementation
    function GetPortCom(Value : byte) : byte; stdcall;
    begin
     
     //ton code
     
     result := //Numéro du port ou 0 si aucun
    end;
    C'est une piste ...

    Bon dev.

  9. #9
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    Je me permets de refaire appel à tes services pour savoir si il est également possible (et comment) récuperer des paramètres avec une application Delphi ?
    David.

  10. #10
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Tu parle de paramètres en ligne de commande ou utiliser les fonctions d'un DLL ( et donc récupérer la valeur de retour)?

    Pour la ligne de commande regarde l'aide de paramstr

    Pour les DLL regarde le tutoriel :
    http://olance.developpez.com/article.../creation-dll/

  11. #11
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 063
    Points : 420
    Points
    420
    Par défaut
    Heu non, pour un exe win32, une application delphi, quoi.

    genre le int argc, char *argv[] de C en quelques sortes.
    David.

  12. #12
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    => regarde la fonction Paramstr

    Bon dev.

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

Discussions similaires

  1. Récupérer la valeur de retour d'une autre application
    Par neupont dans le forum VBScript
    Réponses: 5
    Dernier message: 11/03/2008, 11h55
  2. Question très bête : récupérer la valeur de retour d'une fct
    Par pekka77 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/10/2005, 18h57
  3. Valeur de retour d'une procédure stockée
    Par Rudyweb dans le forum MFC
    Réponses: 4
    Dernier message: 25/02/2005, 18h52
  4. [VB6] Valeur de retour pour une Form
    Par preverse dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/08/2004, 18h16
  5. Valeur de retour d'une procédure externe
    Par elekis dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 16/04/2004, 17h45

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