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 :

Règles de surcharge avec overload ?


Sujet :

Langage Delphi

  1. #1
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut Règles de surcharge avec overload ?
    Salut,

    Je souhaiterais concevoir une unité indépendante comprenant plusieurs procédures et fonctions "static" (qui n'ont pas besoin d'instance).

    Pour les procédures et fonctions de classe, il n'y a aucun problème pour surcharger, l'utilisation d'introduce, overload ou override (selon les cas) est simple.

    Cependant, quand il s'agit de faire la meme chose sur procédures et fonctions non-instanciables, cela ne marche pas... Pourquoi ?

    voici mon 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    unit uRegistre;
     
    interface
    uses Registry, Forms;
     
      function getFromRegistre(sKey,sName : string):string;
      function getFromRegistre(sKey,sName : string):integer;overload;
     
    implementation
     
    function getFromRegistre(sKey, sName : string):string;
    begin
      with TRegistry.Create do
      try
        OpenKey('\Software\'+Application.Title+'\'+sKey,True);
        Result := ReadString(sName);
      finally
        Free;
      end;
    end;
     
    function getFromRegistre(sKey,sName : string):integer;
    begin
      with TRegistry.Create do
      try
        OpenKey('\Software\'+Application.Title+'\'+sKey,True);
        Result := ReadInteger(sName);
      finally
        Free;
      end;
    end;
    le message d'erreur est :"la déclaration de 'getFromRegistre' diffère de la déclaration précédente".

    Comment peut-on faire alors pour surcharger dans ce cas la ?

    merci

  2. #2
    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
    Les deux méthodes doivent avoir l'attribut overload.

  3. #3
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    merci d'avoir répondu si vite

    J'obtiens le meme message sur la deuxième déclaration lorsque je le mets sur les deux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      function getFromRegistre(sKey,sName : string):string;overload;
      function getFromRegistre(sKey,sName : string):integer;overload;
    pourtant cela devrait marcher, non?

  4. #4
    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
    J'ai parlé trop vite ! Voir l'aide de Delphi :

    Les routines redéfinies doivent pouvoir se distinguer par le nombre ou le type de leurs paramètres.
    Ce n'est pas ton cas.

  5. #5
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut
    attention, ici les 2 fonctions ne diffèrent que par le type de retour et je crois
    que ce n'est pas suffisant pour que le compilateur puisse les différencier

  6. #6
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut

    honte pour moi

    Désolé pour le post.
    Merci car je crois que je n'y aurais pas pensé.

    A bientot,
    bon dev
    ben

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

Discussions similaires

  1. [OL-2007] Règles de messagerie avec plusieurs adresses smtp
    Par aymeric117 dans le forum Outlook
    Réponses: 4
    Dernier message: 26/05/2010, 16h04
  2. Affectation d'une règle CSS externe avec javascript
    Par DexterV dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/04/2010, 18h46
  3. override sur une procedure avec overload
    Par Jcpan dans le forum Débuter
    Réponses: 2
    Dernier message: 05/04/2010, 09h59
  4. Régle d'écriture avec variable
    Par hervedum35 dans le forum Apache
    Réponses: 7
    Dernier message: 10/08/2008, 02h01
  5. Probleme avec Overload
    Par rvzip64 dans le forum Delphi
    Réponses: 1
    Dernier message: 17/11/2006, 17h14

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