COMPOSANT CONTENEURS D'OBJETS AVEC DRAG AND DROP FAÇON ASSISTANT CREATION TABLEA

florenth - 16 juil. 2007 à 15:40
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007 - 16 juil. 2007 à 16:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43474-composant-conteneurs-d-objets-avec-drag-and-drop-facon-assistant-creation-tableaux-croises-excel

retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007
16 juil. 2007 à 16:25
Merci de ton commentaire
L'erreur est normale, pour la corrigée, il faudrait créer les boutons dans un conteneur directement, mais pour l'exemple j'ai laissé comme ceci. Le var n'as rien à faire la, en effet ;) Tu ne peux pas cliquer sur les boutons, vu qu'ils sont en dragMode dmAutomatic. Tu peux mettre manual, et dans le onclick begindrag ou startdrag je ne sais plus si tu veux controler toi même le drag.
Pour ce qui est des parenthèse, c'est une habitude que j'ai car elle facilitent les chose lorsque l'on test plusieures conditions.

@+

PS: j'oubliais, mais on peut déplacer les composants au sein d'un conteneur pour les réorganiser.
Très bonne utilisation de ma source ! Je suis content de voir que ça sert !

Sinon, l'effet est très bien, le redimentionnement des contrôles aussi et les petites flèches font très "pro" ^^

Des remarques cependant:
- D'où vient ce "var" dans DragComponentContainer.pas ligne 11 ? Tu es dans une déclaration de membres d'une classe, il ne faut rien mettre devant "FDragDrop: TDragDropViewer".

- J'ai une erreur "invalid class type" lorsque je déplace les boutons dans le composant pour la première fois. En regardant le code, ce n'est pas étonnant, vu que les boutons sont au départ dans la fiche et non dans le composant que tu as crée !

- Je n'arrive pas à cliquer sur un bouton. C'est le comportement voulu ou alors j'ai mal compris ?

- Au niveau de la présentation du code, il serait préférable d'avoir la même indentation partout ! Deux espace: c'est le meilleur choix.

- Toujours dans la syntaxe: au lieu d'écrire Procedure(); tu peux écrire Procedure; De même pour les fonctions sans arguments. Toujours dans les parenthèses en trop, au lieu d'écrire "if(frompos>topos) then", il est préférable d'écrire "if FromPos > ToPos then".
Un peu de majuscules dans les noms de variables permettrait sûrement d'y voir plus clair même si le code n'est pas très compliqué à comprendre.

Cela dit, c'est un bon composant, qui a une utilité limitée certes, mais dont le TComponentContainer est bigrement utile....

A+
Florent
Rejoignez-nous