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 :

.Create : Comment ça marche ?


Sujet :

Delphi

  1. #1
    Membre habitué Avatar de stfanny31
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 163
    Points
    163
    Par défaut .Create : Comment ça marche ?
    salut
    je veux faire un progamme qui crée des (Shape)
    a chaque fois que je clique sur un bouton
    mais je comprend pas des paramétre de (.Create)
    esque vous pouvé m'expliqué comment ca marche ?
    merci bcp
    merci bcp

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    MyForm (souvent Self), c'est l'objet qui sera propriétaire de MyShape, ainsi lorsque tu libéreras MyForm (qui est souvent possédé par Application), MyShape sera libéré, tu ne pourras pu y accéder ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyShape := TShape.Create(MyForm);
    l'aide t'expliquera ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre habitué Avatar de stfanny31
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 163
    Points
    163
    Par défaut
    salut ShaiLeTroll
    merci pr votre message
    mais vous savez je ss pas une grande expérte on delphi
    (mais c'est dans mes projet)
    alor votre texte
    MyForm (souvent Self), c'est l'objet qui sera propriétaire de MyShape, ainsi lorsque tu libéreras MyForm (qui est souvent possédé par Application), MyShape sera libéré, tu ne pourras pu y accéder ...
    et un peut pr moi
    merci bcp

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Dans le système des composants visuels (VCL sous Windows) de Delphi, les composants visuels attendent en paramètre de leur constructeur un propriétaire (propriétaire qui est ensuite accessible via la propriété Owner du composant). Ce propriétaire doit lui-même être un composant, visuel ou non.

    L'intérêt de passer un propriétaire est que cela permet de gérer automatiquement les mécanisme de destruction des objets. Ainsi dès qu'un composant visuel est demandé à être détruit alors il informe tout ses composants dont il est propriétaire qu'ils doivent être détruits eux-aussi. Ainsi cela permet une suppression en cascade automatique des composants sans que l'on ait à gérer explicitement le Free.

    dès lors si on regarde l'arborescence des propriétaire on voit que la fiche (TForm) est souvent en haut de la chaîne, donc dès que la fiche doit être détruite, tout les composants qu'elle possède (et eux-mêmes ceux qu'ils possèdent) sont détruits ensembles automatiquement, pas de fuite de mémoire.

    C'est pourquoi lors de la création dynamique de composants (comme vous souhaitez le faire dans ce cas) il est conseillé de passer la fiche ou tout autre composant déposé sur la fiche comme paramètre au constructeur afin que votre composant créé dynamiquement soit détruit comme les autres en tant voulu. Et que cela ne fasse pas de fuite de mémoire.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  5. #5
    Membre habitué Avatar de stfanny31
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 163
    Points
    163
    Par défaut
    cher Aka Guymelef merci bcp
    cava j'ai bien compri
    miantenant je vais esséyé de crée des composant
    c'est cool
    merci bcp

Discussions similaires

  1. ToAsciiEx, comment cela marche ?
    Par mikyfpc dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/02/2004, 21h39
  2. [MFC] list box : comment ça marche
    Par runn2 dans le forum MFC
    Réponses: 4
    Dernier message: 28/01/2004, 12h36
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

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