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

Composants VCL Delphi Discussion :

Surcharge d'une procédure dans l'instance d'une frame


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Surcharge d'une procédure dans l'instance d'une frame
    Salut tout le monde!!

    J'ai un petit problème avec mes frames sous Delphi 5. Je voudrais avoir une procedure utilisée par le frame, et qui soit surchargeable dans l'instance de la frame lorsque je dessine ma feuille l'utilisant.

    Pour faire simple, j'ai une frame (MaFrame) qui utilise une procedure MaProcedure. Je veux "surcharger" MaProcedure dans une feuille (MaFeuille) pour ne plus passer dans MaFrame.MaProcedure, mais dans MaFeuille.MaProcedure.

    Voila ce que j'ai fait:
    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
     
    MaFrame = Class(TFrame)
      ...
    public
      procedure MaProcedure; virtual;
      ...
    end;
     
     
     
    01 MaFeuille = Class(TForm)
    ..   ...
    10   MaFrame1 : MaFrame; // ajouté par delphi
    11 private
    12   procedure MaFrame1.MaProcedure; override;
    ..   ...
    20 end;
    Lors de la compilation, j'ai
    Ligne 12: Identificateur non déclaré: MaFrame1
    J'obitens la même chose si j'utilise la classe MaFrame:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    12   procedure MaFrame.MaProcedure; override;
    En recherchant dans les différents tutoriels, ils disent que l'instance de la frame est un objet dérivé, mais pas complètement. Il n'y a pas de classe dérivée, et je ne vois pas comment réaliser mon appel.

    Savez-vous comment résoudre mon problème??

    Merci!!!

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Mais tu ne peux pas ! Pour surcharger, il faut qu'il y ait un lien d'héritage. Là, tu as un lien de composition, ta fiche est composée de ta frame. Donc, la seule chose que tu peux faire dans ta fiche, c'est appeler la méthode de ta frame.

  3. #3
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Effectivement, tu ne peux bien pas le faire comme tu l'exposes.
    Ceci dit si tu veux faire ca parce que tu ne veux ou ne peux pas intervenir dans le code de TMaFrame, tu peux faire un descendant TMaFrameModifiee = class(TMaFrame), et utiliser une instance de cette TMaFrameModifiee qui redéfinirait MaProcedure;

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Ok, Merci a tous!

    Je vais essayer de creer une variable contenant l'adresse d'une procedure, et donc je pourrais affecter n'importe quelle procedure via MaForm.

    @+

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/11/2014, 16h44
  2. Réponses: 2
    Dernier message: 23/05/2010, 12h45
  3. Copier une valeur dans un champs depuis une procédure
    Par zinabd dans le forum Designer
    Réponses: 8
    Dernier message: 20/11/2008, 09h31
  4. Réponses: 13
    Dernier message: 11/01/2007, 15h39
  5. stocker une procédure dans une string
    Par Coug1234 dans le forum Langage
    Réponses: 6
    Dernier message: 26/04/2006, 21h46

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