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

C++Builder Discussion :

Instancier correctement une fonction [BCB6]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Par défaut Instancier correctement une fonction [BCB6]
    Bonjour,
    J’ai dans mon code source actuellement un ensemble de ligne qui se répète.
    J’aimerais les mettres dans une fonction qui serait situé au début du reste du code.
    Comment faire ?

    Sachant que les 3 lignes en questions sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       //Indication dans le statusbar du bas.
       FicheStatusBar1->Panels->Items[0]->Text = "Sélection onglet.";
       FicheStatusBar1->Panels->Items[1]->Text = "Présentation.";
       FicheStatusBar1->Panels->Items[2]->Text = "";
    Je vous remercie beaucoup pour vos indications
    Cordialement.

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    En fait, sur chaque form tu as une StatusBar et à chaque fois tu saisi les mêmes données, c'est cela?

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Par exemple, on suppose que ces trois lignes sont répétées plusieurs fois dans une même unité, celle de Form1.

    Il suffit de la déclarer dans la partie public de la classe de TForm1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public :
     
        void __fastcall ZeMethode();
    Ensuite la développer dans l'unité de Form1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm1::ZeMethode()
    {
    //Tes trois lignes de code
    //...
    //...
    }
    Donc il ne reste plus qu'à solliciter cette méthode en lieu et place.

    Si par contre, cette méthode devait également fonctionner avec d'autres StatusBar pour d'autres forms, dans ce cas il suffirait d'ajouter un paramètre, un simple pointeur vers la statusbar en question.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public :
     
        void __fastcall ZeMethode(TStatusBar *StatusBar);
    Ensuite la développer dans l'unité de Form1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::ZeMethode(TStatusBar *StatusBar)
    {
    //Tes trois lignes de code, sans oublier qu'ici la cible c'est StatusBar :
    //StatusBar->...
    }
    Donc selon le cas de figure (dépendant de l'unité)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ZeMethode(ZeStatusBar);
    ou bien (en incluant unit1.h dans les autres unités)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1->ZeMethode(ZuStatusBar);
    A plus !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Par défaut
    Moi je pensait faire plutot:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFonction("info1", "info2", "Info3");
    Ca m'aurais renvoyer sur la fonction qui elle aurais fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    instance::MaFonction(AnsiString Info1, AnsiString Info2, AnsiString Info3)
    {
    //Les trois lignes.
    }
    Enfin, et je sait que ca n'a rien à voir, mais j'aurais fait un truc comme ca en PHP
    Donc j'aimerais faire un principe s'en approchant et ayant la bonne déclaration

    Merci encore pour les informations

    Cordialement.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Sous cet angle là bien sûr !
    Soit les lignes sont identiques (font la même chose) soit il s'agit de simplifier une partie du code servant à initialiser une suite définie de variables.

    Donc la déclaration sera :

    void _fastcall MaFonction(AnsiString N1, AnsiString N2, AnsiString N3);

    Dans certains cas on peut même être amené à passer un tableau d'AnsiString comme paramètre.

    Tu peux faire ce que tu veux ... tant que ça compile et que ça fonctionne !

    A plus !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Par défaut
    En fait je ne suis pas assé calé sur le sujet d'ou mon "comme en PHP"...

    Justement la j'aurais besoin d'un exemple vue que ce bout de code est situer comme suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //Les include
    //Les require
     
    //Les fonctions
     
    //Les boutons etc.
    Du coup faut t il ajouter quelque chose dans le .h et si oui quoi ?

    Merci beaucoup de vos réponses
    Cordialement.

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

Discussions similaires

  1. Réponses: 33
    Dernier message: 07/02/2008, 10h43
  2. [Pointeurs] Instanciation dans une fonction
    Par Arnaud F. dans le forum C++
    Réponses: 7
    Dernier message: 17/12/2007, 16h05
  3. Ecrire correctement une fonction
    Par GLDavid dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 11/05/2007, 11h03
  4. Réponses: 6
    Dernier message: 06/04/2007, 21h20
  5. Instanciation dans une fonction inline
    Par mister3957 dans le forum C++
    Réponses: 5
    Dernier message: 04/03/2007, 19h27

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