Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
prog:lazarus:cas:draganddrop [18/08/2024 18:14] thierry [1. Définir une classe dérivée de `TDragControlObjectEx`] |
prog:lazarus:cas:draganddrop [19/08/2024 15:35] (Version actuelle) thierry [Résumé] |
||
---|---|---|---|
Ligne 29: | Ligne 29: | ||
end; | end; | ||
</code> | </code> | ||
- | **Implémentation de la classe :** | + | **Proposition d'implémentation de la classe :** |
<code delphi> | <code delphi> | ||
Ligne 71: | Ligne 71: | ||
==== 2. Implémenter la méthode `PaintTo` dans le contrôle ==== | ==== 2. Implémenter la méthode `PaintTo` dans le contrôle ==== | ||
Le contrôle à partir duquel l'image sera dessinée doit implémenter la méthode ''PaintTo''. | Le contrôle à partir duquel l'image sera dessinée doit implémenter la méthode ''PaintTo''. | ||
+ | |||
+ | Si la méthode ''PaintTo'' fonctionne pour un Control, le Control doit avoir le membre ''[csReplicatable]'' dans son ''ControleStyle'', voir [[prog:lazarus:classes:tcontrols:tcontrolstyletype#csreplicatable]] | ||
<code delphi> | <code delphi> | ||
Ligne 82: | Ligne 84: | ||
end; | end; | ||
+ | { Si la methode PaintTo est implementée, il est bon de definir ControleStyle+[csReplicatable] } | ||
procedure TTICTileControl.PaintTo(DC: HDC; X, Y: Integer); | procedure TTICTileControl.PaintTo(DC: HDC; X, Y: Integer); | ||
var | var | ||
Ligne 99: | Ligne 102: | ||
==== 3. Créer et initialiser le `TDragObject` dans l'événement `OnStartDrag` ==== | ==== 3. Créer et initialiser le `TDragObject` dans l'événement `OnStartDrag` ==== | ||
- | Lorsque le drag and drop commence, vous devez créer et initialiser votre ''TTileDragObject''. | + | Lorsque le drag and drop commence, vous devez créer et initialiser votre ''TDragObject''. |
<code delphi> | <code delphi> | ||
Ligne 112: | Ligne 115: | ||
end; | end; | ||
</code> | </code> | ||
- | ==== Conclusion ==== | + | ==== Résumé ==== |
- | + | ||
- | En utilisant cette approche, vous créez un objet de type ''TTileDragObject'' qui contient un 'TDragImageList'' pour gérer l'affichage de l'image lors du drag and drop. L'image est dessinée à partir du contrôle source grâce à la méthode ''PaintTo''. Cette méthode permet de dessiner le contrôle dans un bitmap, qui est ensuite utilisé pour afficher l'image lors du drag. | + | |
- | Cette méthode est particulièrement utile lorsque vous voulez fournir une visualisation visuelle immédiate et claire de ce qui est en cours de déplacement, ce qui peut améliorer l'expérience utilisateur lors du drag and drop. | + | En utilisant cette approche, vous créez un objet de type ''TDragObject'' qui contient un ''TDragImageList'' pour gérer l'affichage de l'image lors du drag and drop. L'image est dessinée à partir du contrôle source grâce à la méthode ''PaintTo''. Cette méthode permet de dessiner le contrôle dans un bitmap, qui est ensuite utilisé pour afficher l'image lors du drag. |
+ | ====== Source & Ressources ====== | ||