Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
prog:lazarus:cas:docking [18/08/2024 15:40]
thierry créée
prog:lazarus:cas:docking [18/08/2024 16:38] (Version actuelle)
thierry [GetFloatingDockSiteClass]
Ligne 1: Ligne 1:
 ====== Docking ====== ====== Docking ======
 ===== Le Control dockable ===== ===== Le Control dockable =====
-Pour etre Dockable un controle ​doit avoir les propriétés suivantes : +Pour etre "Dockable" ​un Control ​doit etre initialiser ainsi...
 <code delphi> <code delphi>
     MyControl.DragKind := dkDock;     MyControl.DragKind := dkDock;
     MyControl.DragMode := dmAutomatic;​     MyControl.DragMode := dmAutomatic;​
 </​code>​ </​code>​
 +==== 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"​ ====
 +<code delphi>
 +TWinControl.GetSiteInfo( ​ Client: TControl; var InfluenceRect:​ TRect; MousePos: TPoint; var CanDock: Boolean); virtual;
 +</​code>​
 +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
 +
 +
 +