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 :

Creation d'un composant dans le create d'un autre composant


Sujet :

Composants VCL Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par défaut [Resolu]Creation d'un composant dans le create d'un autre composant
    Bonsoir

    Je pense qu'à la lecture du titre du post vous vous rendez compte que je suis un débutant.
    J'ai créé une classe TTraitement qui dérive de Tobject. Cette classe contient une variable qui est du type TDosCommand qui dérive de TComponent.

    Dans le create de TTraitement je met
    DosCommand:=TDosCommand.create(self)

    Le compilateur bloque dessus et me dis que TTraitement et TComponent sont incompatibles. En passant la souris sur le self, je vois qu'il est du type TTraitement.
    Je croyais que mettre self dans le create voulez dire que DosCommand est un objet dont il est son propre propriétaire. J'suis un peu perdu....

    Vous pouvez m'éclaircir les idées. Merci.

  2. #2
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Pour ce soir je vais te dire que tu peux mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DosCommand:=TDosCommand.create(Nil)
    en espérant que d'autres auront le courage de se lancer dans une explication plus fournie.

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 001
    Par défaut
    Si un composant crée un autre composant dans l'une de ses méthodes, Self se réfère alors au premier composant et non au composant en cours de création qui sera possédé par le premier composant.

    En clair c'est ton TTraitement qui est référencé par Self

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Bonne année et bonne santé


    Effectivement self est un mot clé qui référence la classe en cours soit TTraitement.

    @+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par défaut
    Salut

    Merci ca marche

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par défaut
    Je relance car depuis mon passage à delphi 2009, l'exécution lève l'erreur
    "Impossible de terminer le thread crée de façon externe" sur le TDosCommand.free.

  7. #7
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    La destruction du composant TDosCommand doit se trouver en théorie dans le destructeur de la classe TTraitement. Est-ce le cas ?

    Ce n'est pas un TDosCommand.Free mais un DosCommand.Free ou FDosCommand.Free que tu exécute je suppose.

    @+ Claudius

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par défaut
    La destruction du composant TDosCommand doit se trouver en théorie dans le destructeur de la classe TTraitement. Est-ce le cas ?
    Oui c'est le cas

    Ce n'est pas un TDosCommand.Free mais un DosCommand.Free ou FDosCommand.Free que tu exécute je suppose.
    Oui en effet, erreur de frappe

    c'est DosCommand.Free

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 96
    Par défaut
    Je suis repassé en Delphi 2007 c'est tout

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

Discussions similaires

  1. Suppression d'un autre composant dans l'IDE
    Par VFabritius dans le forum Composants VCL
    Réponses: 0
    Dernier message: 03/02/2010, 11h05
  2. Creation d'une table dans ACCESS avec le composant TADOTABLE ?
    Par QAYS dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/10/2008, 17h39
  3. Réponses: 4
    Dernier message: 20/06/2007, 12h15
  4. creation d'une variable dans un composant ?
    Par renard s dans le forum Composants VCL
    Réponses: 4
    Dernier message: 20/12/2005, 01h10
  5. Creation d une clee dans la registry en VC++
    Par rico27fr dans le forum MFC
    Réponses: 4
    Dernier message: 30/05/2002, 12h36

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