Red de conocimiento de abogados - Derecho de sociedades - Tutorial básico de DELPHI: desarrollo de componentes personalizados de Delphi (1)[2]

Tutorial básico de DELPHI: desarrollo de componentes personalizados de Delphi (1)[2]

Creación de controles de gráficos

Los controles de gráficos son muy similares a los controles personalizados, pero no tienen identificadores de ventana y, por lo tanto, no ocupan recursos del sistema. La mayor limitación de los controles de gráficos es que no pueden. recibir foco de entrada. Debe comenzar desde TGraphicControl. Heredar proporciona Canvas para dibujar y puede manejar mensajes WM_PAINT. Debe anular el método Paint.

Heredar el control de ventana

Hay un. concepto llamado clase de ventana en Windows que es similar a los conceptos de objetos y clases orientados a objetos. Una clase de ventana es una colección de información compartida entre diferentes instancias de la misma ventana o control en Windows cuando se crea un nuevo control utilizando métodos de programación tradicionales de Windows. , define una nueva clase de ventana y se registra en Windows. También puede crear una nueva clase de ventana basada en una clase de ventana existente. Esto se llama heredar de una clase de ventana. En la programación tradicional de Windows, si desea crear controles personalizados, debe hacerlo. hágalo en una biblioteca de enlaces dinámicos. Actúa como un control estándar de Windows y proporciona una interfaz de acceso usando Delphi. Puede crear un widget que se ajuste a una clase de ventana existente si ya tiene una biblioteca de control personalizada y desea ejecutarla. en su aplicación Delphi, puede crear un widget que le permita utilizar controles existentes y obtener nuevos controles. Hay muchos ejemplos de esto en la unidad de biblioteca StdCtrls

Creación de elementos no visuales. widgets

El tipo de objeto abstracto TComponent es el tipo básico de todos los componentes. Los componentes creados directamente desde TComponent son componentes no visuales. La mayoría de los componentes que escribe son controles visuales. requerido por los componentes en FormDesigner Por lo tanto, cualquier componente heredado de TComponent tiene capacidades de diseño

Los componentes no visuales rara vez se usan principalmente como interfaces para unidades de programas no visuales (como unidades de bases de datos) y cuadros de diálogo<. /p>

Métodos para crear nuevos componentes

Hay dos métodos para crear nuevos componentes

● Crear componentes manualmente

● Usar Component Expert

Una vez completada la creación, se obtiene el componente de unidad funcional mínimo requerido y se puede instalar en la Paleta de componentes. Después de la instalación, puede colocar el nuevo componente en la ventana del formulario y probarlo durante la fase de diseño y el tiempo de ejecución. También puede crear nuevos componentes para el componente. Agregar nuevas funciones Actualizar paleta Volver a probar

Crear componentes manualmente

Obviamente, la forma más sencilla de crear componentes es utilizar Component Expert, pero también puede hacerlo. complete los mismos pasos manualmente

La creación manual de un componente requiere los siguientes tres pasos

● Crear una nueva unidad de biblioteca

● Heredar un objeto de componente

● Registrar el componente

 ⑴ Crear una nueva unidad de biblioteca

Una unidad de biblioteca es una unidad de compilación independiente de código Object Pascal. Cada formulario tiene su propia unidad de biblioteca. (lógicamente un grupo) también tienen su propia biblioteca.

Cuando creas una pieza, puedes crear una unidad de biblioteca para la pieza o agregar una nueva pieza a una unidad de biblioteca existente

 ① Crear una unidad de biblioteca para la pieza es opcional Archivo/Nuevo... Seleccione Unidad Delphi en el cuadro de diálogo Nuevos elementos para crear un nuevo archivo y abrirlo en el editor de código

 ② Para agregar componentes a una unidad de biblioteca existente, simplemente seleccione Archivo/ABRIR. Hay una unidad de biblioteca que selecciona el código fuente solo en esa unidad de biblioteca.

Puede contener código de componente. Si hay un formulario en la unidad de la biblioteca, se producirá un error

 ⑵ Heredar un objeto componente

Cada componente es un objeto descendiente de TComponent y también puede serlo. derivado de TControl, TGraphicControl, etc. Herencia

Para heredar un objeto componente, agregue la declaración del tipo de objeto a la parte de interfaz de la unidad de biblioteca

Por ejemplo, para crear el objeto no más simple -Componente visual que hereda directamente de TComponent, lo siguiente es La definición de tipo se agrega a la parte de interfaz de la unidad del componente

tipo

TNewComponent=clase (TComponent)

……

end;

p>

Ahora puede registrar TNewComponent, pero el nuevo componente no es diferente de TComponent. Solo crea su propio marco. componente.

⑶ Registrar el componente

Registrar el componente es decirle a Delphi qué componente es ¿Qué página se agrega a la biblioteca de componentes y a la Paleta de componentes?

> Para registrar un componente

 ① Agregue un proceso de Registro en la parte de la interfaz de la unidad del componente. El registro no toma ningún parámetro, por lo que el procedimiento de declaración es muy simple. Registrarse

Si agrega componentes a una unidad de biblioteca que ya tiene componentes, ya existe un proceso de Registro, por lo que no es necesario modificar la declaración

② En la unidad de biblioteca Escriba un procedimiento de registro para el componente de implementación. Llame al procedimiento RegisterComponents para cada componente que desee registrar. El procedimiento RegisterComponents toma dos parámetros: el nombre de la página de la paleta de componentes y el conjunto de tipos de componentes. y colóquelo en la página Muestras de la Paleta de componentes del programa. Utilice el siguiente procedimiento en

procedimiento Registrar

comenzar

RegistrarComponentes (Muestras [TNewComponent). ])

end;

Una vez registrado, Delphi muestra automáticamente el icono del componente en la Paleta de componentes

Usando Component Expert (Component Expert)

Puede utilizar Component Expert para crear nuevos componentes. Component Expert simplifica la creación de un nuevo componente porque solo necesita describir tres cosas

● El nombre del nuevo componente

. p>

● El tipo de ancestro

● El componente que se agregará al nuevo nombre de la página de paleta de componentes

El experto en componentes realiza el mismo trabajo manualmente

● Crear una nueva unidad de biblioteca

● Heredar un nuevo objeto componente

● Registrar componentes

Pero Component Expert no puede agregar componentes a unidades existentes

Puede seleccionar Archivo/Nuevo... Seleccione Componente en el cuadro de diálogo Nuevos elementos para abrir el cuadro de diálogo Experto en componentes

Después de completar cada campo en el cuadro de diálogo Experto en componentes, seleccione Aceptar compilación de Delphi, incluida la nueva componentes y R

registre la unidad de biblioteca del procedimiento y agregue automáticamente declaraciones de uso

Debe guardar inmediatamente la unidad de biblioteca y darle un nombre significativo

Pruebe los componentes desinstalados

En Puede probar el comportamiento de ejecución de un nuevo componente antes de instalarlo en la Paleta de componentes. Esto es especialmente útil para depurar nuevos componentes, pero también puede usar la misma técnica para probar cualquier componente, ya sea que aparezca en la Paleta de componentes o no. /p>

Desde Essentially se prueba un componente desinstalado simulando las acciones de Delphi cuando el usuario coloca el componente en el formulario

Siga estos pasos para probar un componente desinstalado

En Agregar el nombre de la unidad donde se encuentra el componente en la declaración de usos de la unidad del formulario

Agregar un campo de objeto al formulario para representar el componente

Esta es la forma de agregar componentes por usted y Delphi La principal diferencia

Si agrega el campo de objeto a la parte pública en la parte inferior de la declaración de tipo de formulario, Delphi agregará el campo de objeto a la declaración inferior.

No puede agregar el campo a Delphi. Los campos de objeto declarados en esta parte de la declaración del tipo de formulario administrado se agregarán al archivo DFM en consecuencia. Los nombres de las partes que no existen en el formulario generarán un error de archivo DFM no válido. /p>

Adjunte el formulario El proceso de procesamiento de eventos OnCreate

Construya el componente durante el proceso de procesamiento OnCreate del formulario

Al llamar al proceso de construcción del componente, el parámetro Propietario debe pasar (el propietario es responsable de destruir el componente) En términos generales, Self siempre se utiliza como parámetro entrante del propietario. En OnCreate, Self se refiere a la forma

Asigne un valor a la propiedad principal de. el componente

La configuración de la propiedad principal a menudo se realiza después de construir el componente. Lo primero que debe hacer es que el elemento principal contenga componentes en el formulario. En términos generales, el elemento principal es un formulario o un panel GroupBox. al Padre se le asigna Self, es decir, el formulario. Antes de configurar otras propiedades del componente, es mejor asignar un valor al Padre lishixinzhi/Article/program /Delphi/201311/25122

.