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 :

Parent et Create


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 75
    Points : 61
    Points
    61
    Par défaut Parent et Create
    Bonjour a vous,
    Petite question, lorsque je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    var
      PPanel : TPanel
    begin
    PPanel := TPanel.Create(Form1);
    PPanel.Parent := Form1.ScrollBox1;
    ...
    Qui est-ce qui me détruira mon PPanel ? Mon Form1 lorsque je ferais un close, ou mon Scrollbox1 lorsque je ferais un Form1.Scrollbox1.free ?

    Si c'est mon form1, comment puis je faire pour que ce soit mon scrollbox ? (sachaint que si je fais un create(Form1.scrollbox), je ne le vois pas).

    Merci a vous.

  2. #2
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    en toute logique ça devrait être ton scrollbox qui detruira ton panel

  3. #3
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 104
    Points
    19 104
    Par défaut
    Dans ton cas il vaudrait mieux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var 
      PPanel : TPanel 
    begin 
    PPanel := TPanel.Create(Form1.ScrollBox1); 
    PPanel.Parent := Form1.ScrollBox1;
    Ce qui me surprend c'est que tu dis que le panel n'est pas visible dans ce cas...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Hum, après quelques vérification, vous avez tout les deux raison, et je me suis trompé, ils s'afiuchent ;-)

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 292
    Points : 222
    Points
    222
    Par défaut
    Celui qui est responsable de la destruction c'est le Owner défini quand tu fais
    .Create(aOwner: TComponent);
    Le .Parent c'est celui qui contient ton composant pour l'affichage. Par exemple, la propriété top positionne le composant par rapport au parent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var 
      PPanel : TPanel 
    begin 
    PPanel := TPanel.Create(Form1); 
    PPanel.Parent := Form1.ScrollBox1;
    quand tu feras close, Form1 détruira ton panel. Par contre, ton panel sera affiché dans ton scrollbox1.

    Pour voir ton scrollbox, il faut que tu rajoutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ScrollBox1.Parent := Form1;
    Et là ça devrait aller. Et tu devrais plutôt faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PPanel := TPanel.Create(Form1.ScrollBox1);
    ça parait plus logique

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

Discussions similaires

  1. unable to create INITIAL extent for segment in tablespace
    Par Ludolitaliano dans le forum Administration
    Réponses: 4
    Dernier message: 11/09/2003, 16h43
  2. Comment reloader la frame parent?
    Par mythtvtalk.com dans le forum ASP
    Réponses: 3
    Dernier message: 27/08/2003, 11h40
  3. Conception d'une classe parente
    Par VincentB dans le forum Langage
    Réponses: 9
    Dernier message: 24/06/2003, 17h28
  4. TXMLModule.create - name = resource not found
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 04/03/2003, 10h54
  5. DLL, affichage et parent...
    Par KRis dans le forum Composants VCL
    Réponses: 6
    Dernier message: 13/12/2002, 17h01

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