OVH Cloud OVH Cloud

Changer l'index d'un contrôle

7 réponses
Avatar
TouTi
Bonjour

Puis-je changer l'index d'un contrôle lors de l'exécution?? Pour éviter
trop de manipulation

Exemple : passer de label(10) à label(15)

Actuellement, :
1) je crée load le label 15
2) j'affecte les paramètres de label10 au label 15
3) je supprime le label 10

Merci

TouTi

--

7 réponses

Avatar
Christian Hugoud
Je ne pense pas, ou en tous cas pas simplement du tout.

Christian

"TouTi" <gelapplication[Nospam]@tiscali.fr> a écrit dans le message de news:
4386c9c7$0$29220$
Bonjour

Puis-je changer l'index d'un contrôle lors de l'exécution?? Pour éviter
trop de manipulation

Exemple : passer de label(10) à label(15)

Actuellement, :
1) je crée load le label 15
2) j'affecte les paramètres de label10 au label 15
3) je supprime le label 10

Merci

TouTi

--





Avatar
Patrice Henrio
Je ne comprends pas l'intérêt de cette façon de faire. Peux-tu expliquer
concrètement.

Pourquoi dans ce cas ne pas utiliser un label non indexé, sans copie ni
effacement ?



"TouTi" <gelapplication[Nospam]@tiscali.fr> a écrit dans le message de news:
4386c9c7$0$29220$
Bonjour

Puis-je changer l'index d'un contrôle lors de l'exécution?? Pour éviter
trop de manipulation

Exemple : passer de label(10) à label(15)

Actuellement, :
1) je crée load le label 15
2) j'affecte les paramètres de label10 au label 15
3) je supprime le label 10

Merci

TouTi

--





Avatar
TouTi
Patrice

Je ne comprends pas l'intérêt de cette façon de faire. Peux-tu expliquer
concrètement.



Ma form est découpée en ligne et colonne, chaque "cellule" est repérée par
un numéro. Chaque cellule peut contenir différents objets indexé par le n°
de la cellule. Si je déplace un objet, il faut absolument que son index
correspond au n° de cellule de destination.

Voila voila

TouTi

--
Avatar
Driss HANIB
pourquoi ne pas gérer un numéro de la cellule courante..?
tu crées une variable 'Numcellule' as long
à chaque déplacement tu mets à jour ce numéro et dans tes évènements tu
constultes cette variable.
tu gagneras du temps et de la praticité !!

Driss


"TouTi" <gelapplication[Nospam]@tiscali.fr> a écrit dans le message de
news:4386ef3d$0$19680$
Patrice

> Je ne comprends pas l'intérêt de cette façon de faire. Peux-tu expliquer
> concrètement.

Ma form est découpée en ligne et colonne, chaque "cellule" est repérée par
un numéro. Chaque cellule peut contenir différents objets indexé par le n°
de la cellule. Si je déplace un objet, il faut absolument que son index
correspond au n° de cellule de destination.

Voila voila

TouTi

--




Avatar
Patrice Henrio
Voilà comment je fais dans cette situation
Je te propose deux solutions
les cases sont numérotées à partir de 1
Je crée un label(0) dont la propriété visible est à false qui servira de
base

1ère solution
For I=1 to NBCases
Load Label(I)
Next


Pour gérer l'affichage

For I=1 to NBCases
Label(I).Visible=LabelVisible(I)
Next I

LabelVisible est soit un tableau de boolean soit une fonction booléenne (un
prédicat) qui renvoie vrai ou faux suivant la valeur de I.

A la fin on peut décharger la mémoire

For I=1 to NBCases
Unload Label(I)
Next

Deuxième solution
Un tableau dynamique des cases avec label visible qui contient les numéros
des cases acceptant un label visible
Ce tableau peut être une variable globale si le traitement doit se faire
dans plusieurs modules.

Public TableauCasesLabelVisible() as Long

Vider le tableau

If Ubound(TableauCasesLabelVisible)>0 then
For I=1 to Ubound(TableauCasesLabelVisible)
Unload Label(TableauCasesLabelVisible(I))
Next I
Redim TableauCasesLabelVisible(0 to 0)
End If

Gérer les labels

Traitement case I
N=Ubound(TableauCasesLabelVisible)
If LabelVisible(I) then
Redim TableauCaseLabelVisible(0 to N+1) preserve
TableauCasesLabelVisible(N+1)=I
Load Label(I)
End If



Voilà je pense que ça devrait fonctionner. En tous cas c'est comme cela que
je gère l'affichage de labels en fonction des zones de l'écran (voir mon
logiciel histoire à l'adresse
scraper.chez.tiscali.fr//index1.htm?histoire.htm)

Si tu m'en dis un peu plus je peux sans doute te dire ce qui pourrait être
le plus efficace.


Si vous êtes intéressé par l'histoire, vous pouvez visiter mon site :
Histoire mondiale
(http://www.e-monsite.com/histoiremondiale/)

P. HENRIO



"TouTi" <gelapplication[Nospam]@tiscali.fr> a écrit dans le message de news:
4386ef3d$0$19680$
Patrice

Je ne comprends pas l'intérêt de cette façon de faire. Peux-tu expliquer
concrètement.



Ma form est découpée en ligne et colonne, chaque "cellule" est repérée par
un numéro. Chaque cellule peut contenir différents objets indexé par le n°
de la cellule. Si je déplace un objet, il faut absolument que son index
correspond au n° de cellule de destination.

Voila voila

TouTi

--




Avatar
TouTi
> pourquoi ne pas gérer un numéro de la cellule courante..?
tu crées une variable 'Numcellule' as long
à chaque déplacement tu mets à jour ce numéro et dans tes évènements tu
constultes cette variable.
tu gagneras du temps et de la praticité !!



Effectivement c'est une possibilité, mais je vais m'y perdre.

En fait dans mon cas j'ai simplifié l'explication. Ma form est composé de
tout petit carré dans lequel je peux faire afficher une multitude d'éléments
(>30). Chaque élément est géré dans un tableau. Donc il me faut
impérativement un numéro fixe par cellule.

TouTi


--
Avatar
TouTi
Patrice

Oui tes méthodes je les utilise pour d'autres contrôles de mon application.
Là c'était juste pour facilité le code. Donc si je ne peux pas modifier un
index, je dois recréer un contrôle et supprimer l'ancien lors d'un
déplacement. En plus, je ne peux jamais savoir exactement combien de case le
prog peut gérer car le Nbr de ligne et de colonne peuvent changer sans
perdre les informations lors d'un redimensionnement.

Merci

TouTi

--