Implementación de tecnología de acoplamiento en Delphi:
Con el avance continuo de la tecnología del software, la interfaz del software se vuelve cada vez más hermosa y el funcionamiento es cada vez más conveniente.
Si observamos varios software profesionales en el mercado, encontraremos que la mayoría proporciona la función de acoplamiento de formularios, especialmente el software de herramientas, que básicamente tiene más o menos función de acoplamiento.
Naturalmente, Delphi también admite el acoplamiento y está estrechamente integrado con VCL, lo cual es una gran ayuda para la mayoría de los programadores de Delphi. Ahorremos el aburrido tiempo de codificación. Centrarse en la concepción del programa básico.
Primero revisemos la estructura de VCL. Hay una propiedad DockSite (booleana) en la clase TWinControl. Su función es permitir que otros controles se acoplen en ella. Hay una propiedad DragKind en la clase TControl. Para poder acoplarse a otros controles, establezca la propiedad DragKind en dkDock. Es así de simple, simplemente configure las propiedades y se completará un programa que admite el acoplamiento.
Por supuesto, los pasos anteriores son solo los pasos más básicos. Con los dos pasos anteriores, podemos continuar escribiendo código para implementar funciones más complejas.
Generalmente, los programas que admiten el acoplamiento se pueden acoplar en la parte superior, inferior, izquierda y derecha de la ventana principal. Es decir, es mejor colocar los controles que se pueden acoplar en el costado de la ventana principal (siempre que. se heredan de TWinControl), generalmente elegimos TPanel, para facilitar la comprensión de los lectores, podemos asumir que el lado izquierdo de la ventana principal se puede acoplar, así que coloque un atributo Align en la ventana principal con un El panel de Left se llama LeftDockPanel, el ancho es 0 y el atributo DockSite es True. Por supuesto, nuestro LeftDockPanel debería poder cambiar el tamaño, así que coloque un TSplitter en el lado derecho, llamado LeftSplitter, y el atributo Align es. a la izquierda. El siguiente es el control de acoplamiento. Generalmente, los controles de acoplamiento del programa son formularios, por lo que también creamos un formulario y lo llamamos DockableForm. La propiedad DragKind se establece en dkDock y la propiedad DragMode se establece en dmAutomatic (acoplamiento automático).
Ahora podemos ejecutar este programa, ¿qué? ¿No es efectivo? ¡La forma acoplada desaparece después de ser acoplada!
Oh, casi lo olvido, Delphi generará algunos eventos cuando el formulario acoplado esté acoplado, son
1. OnDockOver(Remitente: TObject; Fuente: TDragDockObject;
X, Y: Entero; Estado: TDragState; var Aceptar: Booleano);
2. OnDockDrop(Remitente: TObject; Fuente: TDragDockObject;
X, Y: Entero);
3. OnGetSiteInfo(Remitente: TObject; DockClient: TControl;
var InfluenceRect: TRect MousePos: TPoint; var CanDock: booleano);
4. OnStartDock(Remitente: TObject;
var DragObject: TDragDockObject);
5. OnEndDock(Remitente, Destino: TObject; X, Y: Entero);
6. OnUnDock(Remitente: TObject; Cliente: TControl;
NewTarget: TWinControl; var Permitir: booleano);
Vaya, tantos, no te preocupes, déjame explicarte en detalle:
Primero echemos un vistazo al primer evento.
OnDockOver se activa cuando el control acoplado (DockableForm) pasa el control acoplado (LeftDockPanel). La fuente contiene información sobre las operaciones de acoplamiento y arrastre. Un atributo importante es Control, que es DockableForm. Otro atributo importante es DockRect, que es la posición de acoplamiento. X e Y son las posiciones del mouse. El estado de Estado es dsDragEnter, dsDragLeave. dsDragMove significa arrastrar hacia adentro, arrastrar hacia afuera y arrastrar para mover. Aceptar significa aceptar el acoplamiento; La función principal del evento OnDockOver es controlar la posición de vista previa del formulario acoplado. Agreguemos el siguiente código: