1. La différence entre propriétaire et parent :
La propriété Parent fait référence au conteneur du composant et le composant ne peut être affiché et déplacé que dans cette plage. Un exemple est le suivant :
(1) Sur le formulaire Form1, placez un Panel1 et agrandissez Panel1.
(2) Placez un Button1 sur Panel1 ;
(3) Placez un Button2 sur Form1.
Maintenant, si vous déplacez Panel1, Button1 se déplace avec Panel1. C'est parce que le parent de Button1 est Panel1. Déplacez maintenant Button2 vers Panel1 et déplacez à nouveau Panel1 Button2 ne bouge pas avec lui. C'est parce que le parent de Button2 est Form1. En plus de la conception du formulaire, vous devez faire attention à qui est le parent du composant. Lors de la création dynamique d'un composant, vous devez également indiquer le parent du composant. Par exemple, continuez l'opération dans l'exemple ci-dessus :
1)Procédure Tform1.Button2click(Expéditeur:Tobjet);
2)Var
3) Bouton : bouton T ;
4) Commencez
5) Bouton : Tbutton.cerate (auto );
6) Bouton.parent=panneau1;
7) Bouton.lleft=0 ;
8) Bouton.top=0 ;
9) Bouton.caption:='OK';
10) Fin ;
Lorsque Button2 est enfoncé, un Button sera créé sur Panel1, et si la phrase 6 est modifiée en Button.parent:=self lorsque Button2 est enfoncé, un Button sera créé sur Form1. Si vous supprimez la phrase 6, rien ne se passera lorsque vous appuierez sur Button2. En effet, la méthode de création ne peut pas savoir où le composant doit être affiché.
L'attribut Propriétaire fait référence au propriétaire du composant, qui est responsable de la création et de la publication du composant. Comme dans l'exemple ci-dessus, le propriétaire par défaut du système de tous les composants du formulaire est le formulaire, et le propriétaire du formulaire est l'application. À propos, la méthode create doit avoir un paramètre qui représente le propriétaire du composant. Dans l'exemple ci-dessus, le propriétaire du composant est le formulaire, qui est self.
L'attribut Parent et l'attribut Propriétaire sont des attributs d'exécution et ne peuvent être définis que via du code pendant la phase d'exécution.
2. La différence entre soi et l'expéditeur :
Dans la table des paramètres du gestionnaire d'événements, il existe au moins un paramètre Sender, qui représente le composant qui déclenche le gestionnaire d'événements. Dans l'exemple ci-dessus, Sender fait référence à Button2. Avec le paramètre Sender, plusieurs composants peuvent partager le même gestionnaire d'événements. à titre d'exemple :
Procédure Tform1.Buttonclick(Sender:Tobject);
Commencer
Si expéditeur=bouton1 alors
Label1.caption :=′Regardez les fleurs qui s'épanouissent et tombent devant le terrain
′ Else Label2.caption:='Regarder les nuages rouler dans le ciel'
Fin;
Dans cet exemple, Button1 et Button2 partagent le gestionnaire d'événements Buttonclick.
Self fait référence à la classe dans laquelle le programme est programmé. Dans Delphi, la plupart des programmes relèvent du formulaire. Par conséquent, self fait référence au formulaire. Nous pouvons voir quel composant self représente dans la déclaration d'une fonction ou d'une procédure, c'est-à-dire que self représente le composant avant le numéro « . » Par exemple, dans le premier exemple, self représente Tform1. De plus, il convient de noter que self ne peut être utilisé que dans des méthodes de classe, pas dans des procédures ou des fonctions. L'utilisation suivante est erronée :
Fonction a1(B:Entier):Entier;
Commencer
…
Bouton :=tbouton.create(self);……
Fin;
3. La différence entre la hauteur et la hauteur du client, la largeur et la largeur du client :
Pour les composants généraux, Height est Clientheight et width est Clientwidth. Pour les formulaires, Height est la hauteur incluant la barre de titre et Clientheight fait référence à la hauteur de la zone client du formulaire. De la même manière, Clientwidth précise la largeur de la zone client du formulaire.
Comme le montre la déclaration ci-dessus, comprendre les différences entre propriétaire et parent, soi et expéditeur, hauteur et hauteur du client, largeur et largeur du client est important pour une programmation correcte dans Delphi.