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:compare_controls [19/08/2024 10:46] thierry [Description] |
prog:lazarus:classes:tcontrols:compare_controls [19/08/2024 11:15] (Version actuelle) thierry [TControl] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | Dans l'environnement de développement Lazarus (utilisant le langage Pascal et la bibliothèque LCL), les classes **TControl**, **TWinControl** et **TCustomControl** sont des éléments de base pour la création d'interfaces graphiques. Elles héritent les unes des autres et permettent de gérer des composants visuels. | + | ====== TControl, TWinControl et TCustomControl ====== |
+ | |||
+ | Dans l'environnement de développement Lazarus (utilisant le langage Pascal et la bibliothèque LCL), les classes [[prog:lazarus:classes:tcontrols:tcontrol|TControl]], [[prog:lazarus:classes:tcontrols:twincontrol|TWinControl]] et [[prog:lazarus:classes:tcontrols:tcustomcontrol|TCustomControl]] sont des éléments de base pour la création d'interfaces graphiques. Elles héritent les unes des autres et permettent de gérer des composants visuels. | ||
<code delphi Héritage> | <code delphi Héritage> | ||
Ligne 14: | Ligne 16: | ||
''TControl'' est la classe de base pour tous les contrôles visuels dans Lazarus. Elle fournit les fonctionnalités de base pour afficher un composant à l'écran et interagir avec les événements utilisateur (comme les clics de souris ou les pressions sur les touches). | ''TControl'' est la classe de base pour tous les contrôles visuels dans Lazarus. Elle fournit les fonctionnalités de base pour afficher un composant à l'écran et interagir avec les événements utilisateur (comme les clics de souris ou les pressions sur les touches). | ||
- | ==== Caractéristiques ==== | + | ** Caractéristiques ** |
* **Propriétés communes** : Position (''Left'', ''Top''), Taille (''Width'', ''Height''), visibilité (''Visible''), couleur de fond (''Color''), etc. | * **Propriétés communes** : Position (''Left'', ''Top''), Taille (''Width'', ''Height''), visibilité (''Visible''), couleur de fond (''Color''), etc. | ||
* **Événements** : Gestion des événements de base comme ''OnClick'', ''OnMouseMove'', ''OnKeyDown'', etc. | * **Événements** : Gestion des événements de base comme ''OnClick'', ''OnMouseMove'', ''OnKeyDown'', etc. | ||
* **Dessin** : ''TControl'' ne dessine pas son contenu lui-même. Cette classe est plutôt utilisée pour encapsuler les propriétés et comportements généraux des composants. | * **Dessin** : ''TControl'' ne dessine pas son contenu lui-même. Cette classe est plutôt utilisée pour encapsuler les propriétés et comportements généraux des composants. | ||
* **Aucun support de conteneur** : ''TControl'' ne peut pas contenir d'autres contrôles visuels. | * **Aucun support de conteneur** : ''TControl'' ne peut pas contenir d'autres contrôles visuels. | ||
+ | * [[prog:lazarus:classes:tcontrols:tcontrol_dragdrop|Gestion du Drag & Drop]] | ||
===== TWinControl ===== | ===== TWinControl ===== | ||
Ligne 25: | Ligne 28: | ||
Cela signifie qu'elle peut recevoir des messages Windows directement et servir de conteneur pour d'autres contrôles. | Cela signifie qu'elle peut recevoir des messages Windows directement et servir de conteneur pour d'autres contrôles. | ||
- | ==== Caractéristiques ==== | + | ** Caractéristiques ** |
* **Conteneur de contrôles** : **TWinControl** peut contenir d'autres contrôles visuels (enfants) et gère leur affichage, leur positionnement, etc. | * **Conteneur de contrôles** : **TWinControl** peut contenir d'autres contrôles visuels (enfants) et gère leur affichage, leur positionnement, etc. | ||
* **Gestion des focus** : Les instances de **TWinControl** peuvent recevoir le focus de la fenêtre (ce qui signifie qu'elles peuvent être activées pour la saisie clavier). | * **Gestion des focus** : Les instances de **TWinControl** peuvent recevoir le focus de la fenêtre (ce qui signifie qu'elles peuvent être activées pour la saisie clavier). | ||
Ligne 31: | Ligne 34: | ||
* **Support des fenêtres natives** : Les instances de **TWinControl** sont capables d'interagir avec les API Windows, ce qui est essentiel pour les contrôles complexes. | * **Support des fenêtres natives** : Les instances de **TWinControl** sont capables d'interagir avec les API Windows, ce qui est essentiel pour les contrôles complexes. | ||
- | ===== 3. TCustomControl ===== | + | ===== TCustomControl ===== |
''TCustomControl'' hérite de ''TWinControl'' et est conçu pour servir de base à la création de contrôles personnalisés. Contrairement à ''TWinControl'', ''TCustomControl'' est une classe qui expose le processus de dessin pour que les développeurs puissent définir la manière dont le contrôle se dessine à l'écran. | ''TCustomControl'' hérite de ''TWinControl'' et est conçu pour servir de base à la création de contrôles personnalisés. Contrairement à ''TWinControl'', ''TCustomControl'' est une classe qui expose le processus de dessin pour que les développeurs puissent définir la manière dont le contrôle se dessine à l'écran. | ||
- | ==== Caractéristiques ==== | + | ** Caractéristiques ** |
* **Dessin personnalisé** : **TCustomControl** introduit la méthode **Paint**, que les développeurs peuvent surcharger pour dessiner leur propre contenu à l'intérieur du contrôle. | * **Dessin personnalisé** : **TCustomControl** introduit la méthode **Paint**, que les développeurs peuvent surcharger pour dessiner leur propre contenu à l'intérieur du contrôle. | ||
* **Flexibilité élevée** : En héritant de **TCustomControl**, vous pouvez créer des composants graphiques totalement personnalisés avec des comportements spécifiques. | * **Flexibilité élevée** : En héritant de **TCustomControl**, vous pouvez créer des composants graphiques totalement personnalisés avec des comportements spécifiques. | ||
* **Conteneur de contrôles** : Comme il hérite de **TWinControl**, **TCustomControl** peut également contenir d'autres contrôles visuels. | * **Conteneur de contrôles** : Comme il hérite de **TWinControl**, **TCustomControl** peut également contenir d'autres contrôles visuels. | ||
- | ===== Comparatif Résumé ===== | + | ===== Tableau comparatif ===== |
^ Caractéristique ^ TControl ^ TWinControl ^ TCustomControl ^ | ^ Caractéristique ^ TControl ^ TWinControl ^ TCustomControl ^ | ||
Ligne 49: | Ligne 52: | ||
| Gestion des messages Windows | Non | Oui | Oui | | | Gestion des messages Windows | Non | Oui | Oui | | ||
- | ===== Conclusion ===== | + | ===== En résumé ===== |
* **TControl** est la classe de base pour tous les composants visuels, mais elle ne gère pas le dessin ou les enfants. | * **TControl** est la classe de base pour tous les composants visuels, mais elle ne gère pas le dessin ou les enfants. | ||
* **TWinControl** est utilisée pour les contrôles qui doivent gérer des enfants et interagir directement avec l'API Windows. | * **TWinControl** est utilisée pour les contrôles qui doivent gérer des enfants et interagir directement avec l'API Windows. | ||
Ligne 55: | Ligne 58: | ||
Ces classes sont souvent utilisées ensemble dans Lazarus pour créer des applications GUI riches et personnalisées. | Ces classes sont souvent utilisées ensemble dans Lazarus pour créer des applications GUI riches et personnalisées. | ||
+ | ===== Sources & Ressources ===== | ||
+ | |||