2012-02-16 19 views
6

Me gustaría hacer que Drag and Dock funcione tan bien en mis aplicaciones como lo hace en Delphi IDE (es decir, poder arrastrar alrededor de la vista Inspector de objetos/Estructura y acoplarlas en sitios adecuados). He tenido bastante éxito con las formas de acoplamiento en un PageControl, pero me preguntaba si alguien sabe cómo hacerlo funcionar con los pequeños botones y alfileres, etc.¿Cómo puedo arrastrar y colocar como el IDE de Delphi con alfileres y pestañas?

También me interesaría saber qué componentes utiliza Delphi IDE para lograr esto.

El motivo de mi pregunta es que quiero hacer videos mucho más avanzados sobre cómo hacer esto, los dos que he hecho anteriormente son here y here.

+1

posible duplicado de [¿Cómo hacer formas acoplables como en IDE?] (Http://stackoverflow.com/questions/1274968/how-to-make-dockable-forms-like-in-ide) –

+2

La pregunta de Alister es claro y comprensible, pero el enlace duplicado publicado por Ken está haciendo un montón de pequeñas preguntas de trivia no relacionadas. Parece estar pidiendo algunos pequeños detalles matizados, a diferencia de su tema. Creo que esta pregunta está mucho mejor escrita. Si este se cierra voy a editar el original ya que está lleno de ruido. –

+1

@WarrenP: ¡Por no mencionar las respuestas superiores que tiene esta pregunta! ;) –

Respuesta

7

Puede usar los componentes JVCL JvDocking para arrastrar y atracar, en casi cualquier versión de Delphi. Es gratis y de código abierto. El estilo con alfileres y botones de cierre está disponible utilizando un estilo de acoplamiento llamado estilo VID (interdev visual), que viene con JvDocking.

enter image description here

Ya hay un montón de alternativas comerciales también, y hay algo de apoyo integrado en Delphi, que me parece insuficiente para mis necesidades. Mientras que Delphi IDE tiene su propia biblioteca de acoplamiento interno, el soporte de pestañas es muy limitado, lento y, en mi opinión subjetiva, roto.

Sin embargo, incluso en versiones delphi antiguas, Delphi 7 y superior, JvDocking, proporciona toda la funcionalidad que proporciona el acoplamiento de la VCL, y más, así que no hay problema ignorando la funcionalidad incorporada de VCL, que es compatible con TStringGrid a Grids reales.

pasos con JvDocking:

  1. servidor de muelle de la gota y el objeto de estilo muelle en (forma de host) principal y conectarlos.
  2. Coloque el componente de cliente de dock en el cliente (formulario a acoplar) y conéctelo al dockstyle.
  3. Configure las propiedades del servidor de base.
  4. Ejecutar la aplicación. Hazlo crear una forma. Ahora arrastre el formulario del cliente a un área que el servidor del muelle pueda acoplar. Míralo atracar muy bien.

Para acoplar en demostraciones de código, consulte las demostraciones de JvDocking en la carpeta Ejemplos de JVCL.

actualización

O bien, puede utilizar lo que se construye en el Delphi VCL desde XE y XE2. XE y XE2 incluyen un proyecto de demo de acoplamiento llamado dockex.dpr.

en Win7/Vista la demo se encuentra en:

C:\Users\Public\Documents\RAD Studio\9.0\Samples\Delphi\VCL\Docking

Mire aquí para la demo en Win XP:

C:\Documents and Settings\All Users\Documents\RAD Studio\9.0\Samples\Delphi\VCL\Docking

También debe revisar la documentación para TDockTabSet en el VCL, y el EDN article vinculado en los comentarios, que tiene el código fuente puede descargar here.En mi humilde opinión, el material de Jedi JvDocking es más profesional y elegante que el Docking Demo que viene con Delphi, pero el material incorporado tiene la ventaja de funcionar sin instalar nada adicional. Acabo de probar la demo de DockTabSet y las demostraciones de acoplamiento incorporadas, y son lentas, y la pintura es fea y parpadea. JvDocking parece profesional. Es tu llamada.

+0

Buena respuesta, pero ¿'TDockTabSet' no proporciona el acoplamiento con pestañas y la" barra de captura "ahora? (En realidad, creo que proporciona todo lo que mencionas como "perdido", o ¿me falta algo? (Pun previsto )). –

+0

He probado TDockTabSet y la demo incorporada en el dockex de VCL, y mi opinión franca es que son complicados, feos y que necesitan mucho trabajo antes de que los incluya en mis propias aplicaciones. Además, parece que no puedo hacer que hagan un acoplamiento real de "Tabset". Los demos afirman mostrar eso pero no lo hacen. Puedo obtener dos ventanas flotantes para acoplar a un conjunto de pestañas flotantes, pero no puedo obtener pestañas como lo hacen con ménsulas de pestañas en el IDE. –

Cuestiones relacionadas