1. La diferencia entre Propietario y Padre:
La propiedad principal se refiere al contenedor del componente y el componente solo se puede mostrar y mover dentro de este rango. Un ejemplo es el siguiente:
(1) En el formulario de Form1, coloque un Panel1 y amplíe Panel1.
(2) Coloque un Botón1 en el Panel1;
(3) Coloque un Botón2 en Formulario1.
Ahora, si mueve el Panel1, el Botón1 se mueve con el Panel1. Esto se debe a que el Padre del Botón1 es el Panel1. Ahora mueva el Botón2 al Panel1 y mueva el Panel1 nuevamente. El Botón2 no se mueve con él. Esto se debe a que el Padre del Botón2 es Form1. Además del diseño del formulario, debe prestar atención a quién es el padre del componente. Al crear un componente dinámicamente, también debe indicar el padre del componente. Por ejemplo, continúe con la operación en el ejemplo anterior.
1)Procedimiento Tform1.Button2click(Remitente:Tobjet);
2)Var
3) Botón: botón T;
4) comenzar
5) Botón:Tbutton.cerate(self);
6) Botón.parent=panel1;
7) Botón.lleft=0;
8) Botón.top=0;
9) Botón.caption:='Aceptar';
10) Fin;
Cuando se presiona el Botón2, se creará un Botón en el Panel1, y si la oración 6 se cambia a Button.parent:=self cuando se presiona el Botón2, se creará un Botón en Form1. Si elimina la oración 6, no sucederá nada cuando se presione el Botón2. Esto se debe a que el método de creación no puede saber dónde debe mostrarse el componente.
El atributo Propietario se refiere al propietario del componente, que es responsable de la creación y lanzamiento del componente. Como en el ejemplo anterior, el propietario predeterminado del sistema de todos los componentes del formulario es el formulario y el propietario del formulario es la aplicación. Por cierto, el método de creación debe tener un parámetro que represente al propietario del componente. En el ejemplo anterior, el propietario del componente es el formulario, que es uno mismo.
El atributo principal y el atributo propietario son atributos en tiempo de ejecución y solo se pueden configurar mediante código durante la fase de tiempo de ejecución.
2. La diferencia entre uno mismo y el remitente:
En la tabla de parámetros del controlador de eventos, hay al menos un parámetro Remitente, que representa el componente que activa el controlador de eventos. En el ejemplo anterior, Remitente se refiere al botón2. Con el parámetro Remitente, varios componentes pueden compartir el mismo controlador de eventos. como ejemplo:
Procedimiento Tform1.Buttonclick(Remitente:Tobject);
Comenzar
Si remitente = botón1 entonces
Label1.caption:=′Mira las flores que florecen y caen frente a la cancha
′ Else Label2.caption:='Mirando las nubes rodando en el cielo'
Fin;
En este ejemplo, Button1 y Button2 comparten el controlador de eventos Buttonclick.
Self se refiere a la clase en la que se programa el programa. En Delphi, la mayor parte de la programación está dentro del alcance del formulario. Por lo tanto, self se refiere al formulario. Podemos ver qué componente representa self en la declaración de una función o procedimiento, es decir, self representa el componente antes del número '.' Además, cabe señalar que self solo se puede utilizar en métodos de clase, no en procedimientos o funciones. El siguiente uso es incorrecto:
Función a1(B:Entero):Entero;
Comenzar
…
Botón:=tbutton.create(self);……
Fin;
3. La diferencia entre altura del cliente y altura, ancho del cliente y ancho:
Para los componentes generales, la altura es la altura del cliente y el ancho es el ancho del cliente. Para los formularios, la altura es la altura incluida la barra de título y la altura del cliente se refiere a la altura del área de trabajo del formulario. De la misma forma, Clientwidth especifica el ancho del área de cliente del formulario.
Como se puede ver en la declaración anterior, comprender las diferencias entre Ower y Parent, Self y Sender, Clientheight y Height, Clientwidth y Width es importante para una programación correcta en Delphi.