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 :

Besoin d'une précision sur la méthode Create


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Besoin d'une précision sur la méthode Create
    Bonjour,

    je fais bien la différence entre la méthode Create et la propriété Parent d'un objet.

    Mais en ce qui concerne la méthode create, j'ai 3 possibilités dans mon cas :
    Create(nil), Create(self) ou Create(MyGrid).
    Je suppose que la différence est liée à la destruction de l'objet (qui possède un propriétaire Aowner ou pas) :
    • Si Create(MyGrid), en supposant que je détruise (MyGrid), l'objet créé sera détruit automatiquement (i.e. sans code dédié à cette tâche) avec MyGrid;
    • Idem pour Create(Self) où l'objet créé sera détruit automatiquement avec la TForm.
    • Mais en ce qui concerne le Create(nil), je devrais détruire par code l'objet par FreeAndNil.


    L'interprétation est-elle correcte ?

    Merci. Cordialement. Gilles.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    C'est bien ainsi qu'il en va pour les TComponent, puisque les autres objets n'ont pas de Owner.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    c'est presque totalement vrai

    la nuance est qu'un composant qui possède un Parent est lui aussi détruit avec son parent, même si son owner est nil
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 539
    Billets dans le blog
    10
    Par défaut
    Après moult talonnements j'ai choisi "Create(self)" Ainsi je peux facilement utiliser les fonctions FindComponent et autres de la même famille

    Dans cet exemple je change le nombre de composants que je détruis et recrée par programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      TfPie = class(TForm)
    ...
      for i1 := fPie.ComponentCount - 1 downto 0 do
      begin
        if fPie.Components[i1] is TPie then
          fPie.Components[i1].Free
        else if fPie.Components[i1] is TTextLayer3D then
          fPie.Components[i1].Free
        else if fPie.Components[i1] is TDummy then
          if fPie.Components[i1].Name <> 'Dummy1' then
            fPie.Components[i1].Free;
      end;
    Nom : i1.png
Affichages : 131
Taille : 48,1 Ko

Discussions similaires

  1. Besoin de précision sur Regex
    Par Kyo-AzN dans le forum Langage
    Réponses: 4
    Dernier message: 25/02/2008, 16h56
  2. Besoin d'avis sur une méthode
    Par g_barthe dans le forum PyQt
    Réponses: 1
    Dernier message: 12/10/2007, 17h54
  3. [POO Basique] Besoin de précision sur une notion de base
    Par alois.cochard dans le forum Langage
    Réponses: 8
    Dernier message: 15/09/2006, 09h01
  4. Besoin d'infos sur le méthode Merise
    Par vallica dans le forum Merise
    Réponses: 5
    Dernier message: 03/07/2006, 21h42
  5. Besoin de précision sur TThread
    Par psau dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/02/2005, 23h35

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