Bonjour à tous,
Auriez vous unz solution pour le problème suivant :
Je souhaite créer plusieures frames dans un TPageControl et associer chacune d'entre elles à un TTabSheet. Je souhaite alors affecter un numéro à la propriété Tag du TTabSheet pour une frame créée afin de pouvoir avoir un lien entre les deux notamment afin que le TTabSheet sache à quelle frame il est relié.
Ainsi le premier TTabSheet aurait la propriété suivante TTabsheet1.tag = 1 correspondant à la frame 1, puis le second TTabsheet2.tag = 2 etc...
Je souhaite alors affecter dans une TList le pointer associé à chacune de ses frame par ordre de création. Ainsi la première frame créée aurait son pointeur affecté à la position 0 de la liste(List[0]), la seconde aurait son pointeur à la place suivante : List[1], etc...
J'ai l'opportunité de supprimer et d'ajouter des frame à ma guise. Ainsi si je supprime une frame je souhiate supprimer son pointeur de la TList. Cette TList repositionnera alors son contenu en ajustant les positions de ses items suivant l'item qui fut supprimé préalablement.
Mon problème est de savoir comment je peux faire pour réaliser la même chose avec les numéro affecté au tag des TTabSheet.
La solution simple consiste à incrémenter le numéro des tags en ajoutant les pointer des frames nouvellement créées dans la TList et de ne pas supprimer les pointer correspondant aux frames qui ont été détruite. Mais cette solution est limité car on va très vite atteindre nos limites liées à la capacité de la TList.
Auriez vous une solution our réaffecter le numéro d'un tag en fonction du réajustement de la TList si l'on considère que l'on peut supprimer certains éléments de cette liste quand l'on détruit les frames asociées.
Une autre solution serait d'affecter le pointer d'une frame à la propriété tag du TTabSheet. Mais dans ce cas comment puis je transtyper un pointer en integer, et inversement récupérer à partir du numéro affecté au tag, le pointer initialement passé en paramètres.
Si vous savez faire cette solution, c'est celle qui m'intéresserait le plus. Mais si vous avez d'autres idée je suis également preneur.
Merci beaucoup pour vos réponses
Anthony
Partager