IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Blog de Serge Girard (aka SergioMaster)

[Delphi][VCL] Carnet de Plongées : TControlList - Bilan

Noter ce billet
par , 29/04/2021 à 08h09 (23105 Affichages)
En clôture de cette série de billets, il est temps de faire le bilan.

Ma première impression, trop habitué maintenant aux listes FMX (FMX.TListView), j'ai d'abord cru à un équivalent, en mieux puisqu'il y avait la possibilité de créer des colonnes. Cette première réaction s'est avérée plus ou moins fausse, oui, effectivement, cela y ressemble par exemple par la nécessité de l'utilisation des Livebindings pour lier ce composant à un ensemble de données.
Une fois l'habitude prise, on est vite frustré par le peu de composants que l'on peut utiliser. Seuls des composants dits "contrôles graphiques" (TGraphicControl) sont acceptés soit : des TLabel, TImage, TVirtualImage, TShape, TSpeedButton et TSplitter (et encore ce dernier n'est pas fonctionnel) en sus du nouveau et spécifique TControlListButton.
Comme pour la FMX.TListview, ce n'est pas un composant équivalent d'une grille donnant la possibilité d'éditer des données en son sein.

Une compréhension de ce que je nommerai un cycle de dessin est absolument nécessaire pour avoir une maitrise fine de ce composant. Je le schématiserai ainsi :

Nom : cycle.png
Affichages : 132
Taille : 148,5 Ko
* notez que les évènements onEnableControl, onShowControl ne sont que des modifications des propriétés Enable et Visible du contrôle, ces mêmes propriétés (ainsi que d'autres) pouvant être modifiées dans les évènements plus généraux (OnBeforeDrawItem, onAfterDrawItem).

En théorie donc, seuls les éléments "visibles" sont dessinés. Néanmoins, cette "économie" est légèrement gâchée (démonstration avec ce billet) par le fait qu'un déplacement de la souris sur les éléments de la liste entraine un rafraichissement de la liste entière (entre autres pour les effets visuels).

Dans la partie positive :
  • Les diverses présentations possibles. (ColumnLayout)
  • La facilité de réalisation, surtout dans le cadre d'une utilisation d'un ensemble de données liées (LiveBindings).
  • La vitesse du dessin (dépendant quand même des tailles d'image).


Dans la partie négative :
  • Le peu de contrôles utilisables.
  • Les divers bogues constatés (onItemClick intempestifs, liaison avec TProtypeBindSource).
  • L'impossibilité d'accéder à certaines méthodes (par exemple : ItemAtPos cf. le billet sur le Drag&Drop)


Dans la liste des regrets :
  • L'impossibilité d'avoir des éléments de tailles variables.
  • L'impossibilité de gérer le nombre de colonnes ou lignes selon le maximum
  • Le fait que les éléments affichés ne soient pas "mémorisés" de façon à accéder facilement à ses éléments.


En conclusion générale, un gadget améliorable.

Envoyer le billet « [Delphi][VCL] Carnet de Plongées : TControlList - Bilan » dans le blog Viadeo Envoyer le billet « [Delphi][VCL] Carnet de Plongées : TControlList - Bilan » dans le blog Twitter Envoyer le billet « [Delphi][VCL] Carnet de Plongées : TControlList - Bilan » dans le blog Google Envoyer le billet « [Delphi][VCL] Carnet de Plongées : TControlList - Bilan » dans le blog Facebook Envoyer le billet « [Delphi][VCL] Carnet de Plongées : TControlList - Bilan » dans le blog Digg Envoyer le billet « [Delphi][VCL] Carnet de Plongées : TControlList - Bilan » dans le blog Delicious Envoyer le billet « [Delphi][VCL] Carnet de Plongées : TControlList - Bilan » dans le blog MySpace Envoyer le billet « [Delphi][VCL] Carnet de Plongées : TControlList - Bilan » dans le blog Yahoo

Catégories
Programmation , Delphi

Commentaires