Différences

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

Lien vers cette vue comparative

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:40]
thierry
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 12: Ligne 14:
 ===== 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 32: 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 51: 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 57: 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 =====
 +