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 :

[D7]Méthode non accessible d'une classe à l'autre


Sujet :

Delphi

  1. #1
    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 : 38
    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
    Points : 4 935
    Points
    4 935
    Par défaut [D7]Méthode non accessible d'une classe à l'autre
    Bonjour,

    Je viens de me lancer dans la programmation en objet et j'ai encore quelques difficultes ...
    En voilà une

    Je dispose des classes suivantes :
    - BD (qui contient une collection de Tables)
    - Table
    - Entite (héritée de Table)
    - Relation (héritée de Table)

    Dans ma classe BD, j'ai inclus les unités des classes Table, Entite et Relation.
    Dans la classe Relation, j'ai une méthode qui permet de dessiner.

    La collection de Table peut contenir soit des objets de type Entite soit des objets de type Relation :

    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
    procedure TBD.AddTable(laTable:TTables);
    begin
    nbTable:=nbTable+1;
    SetLength(lesTables,nbTable);
    lesTables[nbTable-1]:=laTable;
     
    if laTable is TEntite then
    begin
    nbEntite:=nbEntite+1;
    laTable.Name:='Entite'+IntToStr(nbEntite);
    end;
     
    if laTable is TRelation then
    begin
    nbRelation:=nbRelation+1;
    laTable.Name:='Relation'+IntToStr(nbRelation);
    end;
    Maintenant, je souhaite pouvoir extraire seulement les objets de type TRelation contenu dans ma collection pour pourvoir accéder à leurs méthodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TBD.RedessinerLiens;
    var
    i:integer;
    laRelation:TTables;
    begin
      for i:=0 to high(lesTables) do
        begin
        if lesTables[i] is TRelation then
        begin
        laRelation:=lesTables[i];// Type Incompatible entre TTables et TRelation
        laRelation.EffacerRelation;//du coup j'ai pas accès à cette méthode
        end;
      end;
    end;
    Je ne comprends pas pourquoi cela ne fonctionne pas!
    Si vous pouvez m'éclairer sur ce problème je vous serai reconnaissant

    Merci

    PS: Si vous manquez d'infos, dites le moi

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Ben laRelation est de type TRelation, et lesTables[I] est de type TTable. Donc c'est normal que tu aies des types incompatibles. Tu dois ajouter un transtypage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    laRelation := TRelation(lesTables[I]);
    A ce sujet : Quid du transtypage et de l'opérateur as ?

  3. #3
    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 : 38
    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
    Points : 4 935
    Points
    4 935
    Par défaut
    En effet, ca fonctionne correctement !

    Merci Sjrd pour cette petite ligne de code

    Affaire résolu

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

Discussions similaires

  1. Lister les méthodes non référencées d'une classe
    Par legentil dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 22/07/2010, 10h42
  2. Réponses: 4
    Dernier message: 17/03/2007, 02h06
  3. Méthodes non accessibles
    Par ez3kiel dans le forum Langage
    Réponses: 1
    Dernier message: 28/10/2006, 15h16
  4. champs non accessibles dans une requête sélection
    Par Claire31 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 03/08/2006, 14h22
  5. Réponses: 3
    Dernier message: 16/04/2004, 17h51

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