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 :

Possibilité de déclarer comme constante le chemin de l'application


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2015
    Messages : 64
    Points : 35
    Points
    35
    Par défaut Possibilité de déclarer comme constante le chemin de l'application
    Bonjour et mes meilleurs voeux a tous,

    J´ai une question.
    Est-ce que c´est possible de déclarer le code suivant com const ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    const
    {$IFDEF MSWINDOWS}
              IniName : string = ExtractFilePath(ParamStr(0)) + System.IOUtils.TPath.DirectorySeparatorChar + 'test.dat';
    {$ELSE} //if iOS or Android
              IniName : string = System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDocumentsPath, 'test.dat');
    {$ENDIF}
    Je recoit le message d´erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [dcc32 Fehler] Test.pas(419): E2026 Konstantenausdruck erwartet
    Sorry, mais c´est en allemand.

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 393
    Points : 637
    Points
    637
    Par défaut
    non les constantes sont évaluées lors de la compilation

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par exoseven Voir le message
    non les constantes sont évaluées lors de la compilation
    Comme voudrais-tu que le chemin de lancement du programme soit connue à la compilation
    ParamStr(0) est une valeur fourni par Windows, c'est le chemin complet de l'exe lancé, pas le chemin d'origine du projet

    GetDocumentsPath lui c'est en fonction de l'utilisateur connecté, encore une fois, c'est une valeur inconnue à la compilation

    Tu es débutant, tu devrais étudier les concepts de DesignTime et de RunTime !
    Comment un programme créé en DesignTime sur Windows pourrait connaitre des informations systèmes Android uniquement disponible en RunTime ???
    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

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    @jeng37

    Tu pourrais peut-être faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var
      IniName: string;
     
    begin
    {$IFDEF MSWINDOWS}
      IniName := ExtractFilePath(ParamStr(0)) + System.IOUtils.TPath.DirectorySeparatorChar + 'test.dat';
    {$ELSE} //if iOS or Android
      IniName := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDocumentsPath, 'test.dat');
    {$ENDIF}
    end.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 556
    Points : 3 926
    Points
    3 926
    Par défaut
    Salut

    Si tu tiens à ce que cette valeur soit vue comme une constante, tu peux toujours la fournir comme résultat d'une fonction.

    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

Discussions similaires

  1. Richard Stallman : Windows, OS X, iOS et Android sont des malwares
    Par Hinault Romaric dans le forum Sécurité
    Réponses: 236
    Dernier message: 13/08/2015, 08h10
  2. Richard Stallman : Windows, OS X, iOS et Android sont des malwares
    Par Hinault Romaric dans le forum Actualités
    Réponses: 234
    Dernier message: 03/08/2015, 11h51
  3. [Windows] beep system sur FMX Windows
    Par Papy214 dans le forum Composants FMX
    Réponses: 3
    Dernier message: 17/04/2015, 14h13
  4. C# cross platform Andoid/Ios
    Par infdunord dans le forum C#
    Réponses: 6
    Dernier message: 17/04/2015, 12h27

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