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 :

Classe générique et héritage


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Par défaut Classe générique et héritage
    Salut salut, je voudrais une petite précision concernant les classes génériques en Delphi. Je voudrais savoir s'il était possible de définir une classe qui hériterait d'une classe générique ayant en paramètre la classe que je suis en train de définir. En d'autres termes, faire une sorte de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Myclass = class(MyClassGeneric<MyClass>)
    Merci, a toute !

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Par défaut
    Salut, salut.
    Voila j'ai un autre soucis.
    Tout d'abord, le 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
     
    type
    TGenericClass<T : class> = class
    public
    class function CreateInstance() : T; virtual; abstract;
    class procedure Kill(); virtual;
    end;
     
    TMyClass = class(TGenericClass<TMyClass>)
    public
    class function CreateInstance() : TMyClass; override;
    procedure Test();
    end;
     
    ///////////////////////////////////
    Main.pas
    /////////////////////////////////
    procedure main();
    var
     Test1 : TMyClass;
    begin
     
      Test1:= TMyClass.CreateInstance(); //Ici ca marche
      Test1.Kill(); //Ici erreur interne à la compilation
    end
    Alors voila, ma question c'est peut-on appeler une méthode d'une classe générique mère ?
    Thx.

  3. #3
    Expert confirmé

    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
    Par défaut
    Et si tu écris :
    au lieu de
    Ca fait aussi une erreur interne ?
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Par défaut
    Salut, ouais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DCC Erreur fatale F2084 Erreur interne : AV21B2E436-R0000000C-0

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Par défaut
    Salut salut, bon j'ai résolu le problème en appelant la classe mère directement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TGenericClass<TMyClass>.Kill;
    Mais maintenant j'ai un autre soucis qui n'a pas de rapport avec le sujet, mais pour éviter de recréer un post, je demande ici.

    En gros, j'ai réalisé un bind d'une lib C vers Delphi. Toutes les fonctions sont exécutés sans trop de soucis, seulement, je viens de remarquer que les string que je passe en paramètre ne sont pas correctement passés à la DLL.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //DLL
    void display(const char* mystring);
    //Delphi
    procedure display(mystring : string); cdecl; external 'mydll.dll' name 'display'
     
    //Appel
    display('Ahahaha')
    Ici seulement le premier A est passé à la dll. Alors je voulais savoir si le problème se résout en recompilant la dll avec le compilateur de borland ou si je peux le résoudre dans mon appli ? (ouais pas trop envie de recompiler des libs...)

    Thx.

  6. #6
    Expert confirmé

    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
    Par défaut
    char * en C c'est PAnsiChar en Delphi, pas string !
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

Discussions similaires

  1. [c#] Héritage d'interface et classe générique
    Par NeoKript dans le forum C#
    Réponses: 2
    Dernier message: 26/06/2011, 11h40
  2. Réponses: 3
    Dernier message: 05/10/2006, 17h15
  3. [C# 2.0] Un exemple de classe générique qui ne compile pas.
    Par Pierre8r dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/05/2006, 11h11
  4. [C#][ADO] Classe Générique ADO
    Par tscoops dans le forum Accès aux données
    Réponses: 2
    Dernier message: 15/11/2005, 14h21
  5. [Generics] Classe générique
    Par norkius dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2004, 15h57

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