====== Docking ======
===== Le Control dockable =====
Pour etre "Dockable" un Control doit etre initialiser ainsi...
MyControl.DragKind := dkDock;
MyControl.DragMode := dmAutomatic;
==== La Fonction "GetFloatingDockSiteClass" ====
Renvoie la classe pour un site d'amarrage flottant.
Une instance de cette classe est créée chaque fois qu'un contrôle doit flotter, mais ne peut pas (ou ne doit pas) flotter par lui-même.
Seuls les TWinControls peuvent flotter à l'écran (avec Parent=nil), mais pas les TControls ordinaires.
Étant donné que les TForm amarrables ne sont pas pris en charge sur toutes les plateformes, un TWinControl amarrable peut nécessiter un hôte flottant qui présente une poignée d'amarrage à l'utilisateur (par exemple, une Caption d'amarrage)
La fonction ''TControl.GetFloatingDockSiteClass'' retourne une classe de type ''TCustomDockForm'', ce qui signifie qu'elle renvoie une classe descendante de TCustomForm (ou une de ses dérivées). Cette classe est utilisée pour créer la fenêtre qui hébergera les fenêtres ou contrôles dockés.
=== Personnalisation du Docking par Surcharge===
Si vous souhaitez personnaliser l'interface de docking dans votre application, vous pouvez surcharger ''TControl.GetFloatingDockSiteClass'' pour qu'elle retourne une classe spécifique de TCustomForm. Par exemple, vous pourriez vouloir utiliser une classe dérivée de TForm avec des fonctionnalités supplémentaires pour le docking.
===== Le DockSite : le Control qui reçois le Control dockable =====
==== la fonction "GetSiteInfo" ====
TWinControl.GetSiteInfo( Client: TControl; var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean); virtual;
La méthode TWinControl.GetSiteInfo renvoie un rectangle d'influence (de capture) associé au site d'amarrage. Cette convention permet, par exemple, de masquer les sites d'amarrage vides dans l'interface graphique sans les rendre inaccessibles pour le dépôt. L'implémentation par défaut renvoie l'étendue du contrôle visible, augmentée d'un certain montant dans chaque direction