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 :

property type array avec parametre out


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 71
    Points : 57
    Points
    57
    Par défaut property type array avec parametre out
    Bonsoir,

    Avec tlibimp.exe j'ai généré un tlb.
    Dans le tlb j'ai les définitions ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        function Get_IsSucceeded(out Message: WideString): WordBool; safecall;
     
        property IsSucceeded[out Message: WideString]: WordBool read Get_IsSucceeded;
     
        function TConnection.Get_IsSucceeded(out Message: WideString): WordBool;
        begin
            Result := DefaultInterface.IsSucceeded[Message];
        end;
    Ce qui me gène c'est le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    property IsSucceeded[out Message: WideString]
    que je ne comprends pas au niveau syntaxe.

    Dans mon code je l'appel comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Result := FConnMaitre.IsSucceeded[MyMessage];
    ça fonctionne mais à la fermeture de l'exe j'ai un runtime error ?

    Q1 : Comment fonctionnne cette déclaration ?

    Q2 : Mon appel est'il correcte ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 548
    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 548
    Points : 25 118
    Points
    25 118
    Par défaut
    un paramètre de sortie sur une property c'est original !

    dans ton appel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Result := FConnMaitre.IsSucceeded[MyMessage];
    MyMessage est vide AVANT l'appel
    MyMessage contient peut-être quelque chose !
    On peut penser que cela reste vite en cas de succès et que cela joue le role de GetLastError en cas d'echec !

    ton code pourrait être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
      MyMessage: string;
    begin
      if not FConnMaitre.IsSucceeded[MyMessage] then
        ShowMessage(MyMessage);
    end;
    Pense au Free de FConnMaitre, tu as peut-être oublié de libérer l'objet d'où le RunTime Error (217 ???)

    Je te déconseille de modifier le TLB généré
    Il est plus prudent de faire un objet qui encapsule (par héritage ou composition à ta préférence) cet objet COM
    Si tu as modifié un DESTRUCTOR n'oublie pas le inherited Destroy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    destructor TCoquille.Destroy();
    begin
      FreeAndNil(FConnMaitre);
     
      inherited Destroy();
    end;
    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

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/08/2009, 11h06
  2. Fonction avec parametre Out
    Par Jcpan dans le forum Débuter
    Réponses: 12
    Dernier message: 01/12/2008, 14h43
  3. Parametres javascript de type array
    Par benkrob dans le forum Applets
    Réponses: 4
    Dernier message: 11/02/2008, 19h02
  4. type array possible avec pl/pgsql ?
    Par Sakalam dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 31/08/2006, 17h34
  5. Retrieve avec paramètre de type date
    Par digital prophecy dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 09/08/2006, 13h32

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