Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
prog:lazarus:classes:tcontrols:compare_controls [19/08/2024 10:35] thierry créée |
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. Voici un comparatif de ces trois classes : | + | ====== 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> | ||
+ | TCustomControl = class(TWinControl) | ||
+ | TWinControl = class(TControl) | ||
+ | TControl = class(TLCLComponent) | ||
+ | |||
+ | |||
+ | </code> | ||
===== TControl ===== | ===== TControl ===== | ||
- | ==== Description ==== | ||
''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 ===== | ||
- | ==== Description ==== | + | ''TWinControl'' est une classe qui hérite de ''TControl'' et qui ajoute des capacités pour gérer les contrôles ayant une "fenêtre" Windows (c'est-à-dire une handle de fenêtre).\\ |
- | **TWinControl** est une classe qui hérite de **TControl** et qui ajoute des capacités pour gérer les contrôles ayant une "fenêtre" Windows (c'est-à-dire une handle de fenêtre). 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 23: | 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 ===== |
- | ==== Description ==== | + | ''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 42: | 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 48: | 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 ===== |
+ |