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:classes:tcontrols:tcontrols2 [29/08/2024 19:05] thierry [Utilité de la fonction TMyControl.GetVisibleRect] |
prog:lazarus:classes:tcontrols:tcontrols2 [29/08/2024 19:07] (Version actuelle) thierry [Savoir quelle partie (TRect) du Control est affiché] |
||
---|---|---|---|
Ligne 97: | Ligne 97: | ||
===== Savoir quelle partie (TRect) du Control est affiché ===== | ===== Savoir quelle partie (TRect) du Control est affiché ===== | ||
- | La fonction ''TMyControl.GetVisibleRect'' ci-dessous calcule la partie visible d'un contrôle personnalisé sous forme d'un ''TRect'', en tenant compte des limites imposées par ses parents dans la hiérarchie visuelle.\\ | + | La fonction ''TMyControl.GetVisibleRect'' ci-dessous __calcule la partie visible d'un contrôle__ personnalisé sous forme d'un ''TRect'', en tenant compte des limites imposées par ses parents dans la hiérarchie visuelle.\\ |
Elle traverse tous les parents du contrôle, réduisant progressivement le rectangle visible à l'intersection avec chaque parent. Le résultat est le rectangle visible final en coordonnées locales, retourné par la fonction. | Elle traverse tous les parents du contrôle, réduisant progressivement le rectangle visible à l'intersection avec chaque parent. Le résultat est le rectangle visible final en coordonnées locales, retourné par la fonction. | ||
<code pascal> | <code pascal> | ||
Ligne 136: | Ligne 136: | ||
La fonction `TMyControl.GetVisibleRect` permet de déterminer quelle partie d'un contrôle est réellement visible à l'écran, en tenant compte des limitations imposées par ses parents dans la hiérarchie des contrôles. | La fonction `TMyControl.GetVisibleRect` permet de déterminer quelle partie d'un contrôle est réellement visible à l'écran, en tenant compte des limitations imposées par ses parents dans la hiérarchie des contrôles. | ||
- | === Contexte d'utilisation === | + | ** Contexte d'utilisation ** |
* **Rendu graphique** : Identifie quelles portions du contrôle doivent être redessinées en fonction de leur visibilité. | * **Rendu graphique** : Identifie quelles portions du contrôle doivent être redessinées en fonction de leur visibilité. | ||
* **Détection de clics** : Vérifie si une interaction utilisateur, comme un clic, se produit dans une zone visible du contrôle. | * **Détection de clics** : Vérifie si une interaction utilisateur, comme un clic, se produit dans une zone visible du contrôle. | ||
* **Optimisation** : Aide à concentrer les ressources sur la partie visible du contrôle pour améliorer les performances. | * **Optimisation** : Aide à concentrer les ressources sur la partie visible du contrôle pour améliorer les performances. | ||
- | === Autres applications === | + | ** Autres applications ** |
* **Défilement automatique** : Lorsqu'un contrôle est contenu dans un `ScrollBox`, la fonction aide à gérer le défilement en ajustant dynamiquement la partie visible. | * **Défilement automatique** : Lorsqu'un contrôle est contenu dans un `ScrollBox`, la fonction aide à gérer le défilement en ajustant dynamiquement la partie visible. | ||
* **Animations ou effets visuels** : Pour des effets qui doivent se limiter aux zones visibles, cette fonction garantit que seules les parties pertinentes du contrôle sont affectées. | * **Animations ou effets visuels** : Pour des effets qui doivent se limiter aux zones visibles, cette fonction garantit que seules les parties pertinentes du contrôle sont affectées. | ||
* **Validation et gestion des collisions** : Dans des applications comme les jeux ou les simulations, elle peut servir à déterminer les parties visibles d'un objet pour des vérifications ou interactions précises. | * **Validation et gestion des collisions** : Dans des applications comme les jeux ou les simulations, elle peut servir à déterminer les parties visibles d'un objet pour des vérifications ou interactions précises. | ||
- | En résumé, `TMyControl.GetVisibleRect` est cruciale pour assurer que les opérations graphiques et interactives s'appliquent uniquement aux parties visibles du contrôle, optimisant ainsi les performances et la réactivité de l'interface utilisateur. | ||