[UDF] Array avec des ID Fixes

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

[UDF] Array avec des ID Fixes

#1

Message par matwachich »

Salut à tous!
Encore un UDF!!!

Celui là, je l'ai utilisé massivement dans Scite Project Manager (que je développe toujours)!

C'est des fonctions pour gérer un Array spécial:
Quand on y ajoute des éléments, et ensuite qu'on en supprime, même si ces éléments sont au milieux des autres, ces derniers ne change pas d'ID, c'est à dire, il ne sont pas décalés!

Vous allez me dire: à quoi ça peut bien servir!!!??? :roll: :?
Eh bien par exemple, vous utiliser un TreeView, et vous voulez associer à chaque item des données, il n'y a pas de fonction pour associer d'autre données que un Nombre avec un TreeViewItem (_GuiCtrlTreeView_SetItemParam), alors vous stockez ces données dans un Array, et le nombre associé au TreeViewItem sera l'ID des données dans le array.

Seulement voila! Quand on supprime un TreeViewItem, et qu'on supprime l'élément du Array associé, et bien les éléments qui se trouvent après sont décalé! Et donc, le nombre associé au TreeViewItem devient donc invalide!

Ce petit UDF est donc là pour ça!
Il y a un exemple commenté (en anglais :? )
Fichiers joints
UDF_FixArray.zip
(3.78 Kio) Téléchargé 292 fois
Modifié en dernier par matwachich le mer. 08 févr. 2012 00:29, modifié 1 fois.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] Array avec des ID Fixes

#2

Message par Tlem »

C'est une façons de voir les choses, mais il faut bien comprendre que le tableau sera rechargé au démarrage suivant, donc le fait de gérer la suppression des éléments n'est pas indispensable. L'élément peut tout simplement être vidé et le traitement devra tenir compte des éléments vide ou non. ;)

Mais bon, si cela vous convient, il est difficile de juger des gouts et des couleurs. :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] Array avec des ID Fixes

#3

Message par matwachich »

J'ai pas bien compris ce vous voulez dire par "sera rechargé au démarrage suivant"?
Au fait, le truc ici, c'est que il gère tout seul le fait que:
Si il y a un emplacement vide au MILIEU du array, alors on stock nous nouvelles données dans cet emplacement
Si non, on ajoute un emplacement nouveau.

C'est quelque sorte plus optimiser, et le sale boulot est fait une bonne fois pour toute!

En plus, c'est assez flexible je trouve, car on peut créer des arrays à 2 dimensions (avec autant de ... comment on l'appel... le x rouge $Array[..][x])
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] Array avec des ID Fixes

#4

Message par Tlem »

Ce que je veut dire, c'est que le tableau est généré par la lecture du TreeView (n'est-ce pas ?). Donc si votre programme est fermé puis relancé avec chargement du projet, le tableau sera de nouveau reconstruit à partir du TreeView ...

A moins que vous n'ayez fait l'inverse ... :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] Array avec des ID Fixes

#5

Message par matwachich »

C'est pas tout à fait ça:
- Le tableau est générer lors de la création d'Items dans le TreeView, à chaque item donc, j'associe des données (chemin du fichier, id du projet, et surtout type d'item: projet, dossier, fichier)
- Comme ça, quand un événement est généré par le tree view, il me suffit de récupérer l'item concerné, de prendre son Param (_GuiCtrlTreeView_GetItemParam) et prendre les données concernant l'item dans le array

- J'ai procéder de cette manière, car je veux que quand un projet est fermé, toutes les données le concernant soient effacées (mémoire), mais si j'efface des item du array, alors les id (param) associés avec mes TreeViewItems deviennent invalides!

PS: ne cherchez pas cet UDF dans les source de Scite Project Manager, c'est bien cette méthode que j'ai utilisé, mais cet UDF (que je vien de faire). Car c'est ce problème au quel j'ai été confronté avec SPM qui m'a donné cette idée.

PS2: Vous pouvez déjà tester SPM, il suffit de récupérer les sources depuis le SVN de google codes, et de lancer SPM.au3, le code et commenté et on peut déjà:
- Créer, sauvegarder, ouvrir des projets
- Y ajouter des fichiers, dossiers, et les supprimer
- Glisser déposer les fichiers d'un dossier à un autre
- Il y l'historique des derniers dossiers ouverts
...
Et il reste encore du boulot!!!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] Array avec des ID Fixes

#6

Message par matwachich »

@Tlem: il faut re-télécharger l'archive, j'ai modifier le code pour ajouter une fonction très importante: _FixArray_Set (modifier les valeurs enregistrées)
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] Array avec des ID Fixes

#7

Message par Tlem »

Vous avez fait un choix dans la gestion des éléments de votre TreeView. Je n'exposais qu'un point de vue différent, car votre gestion m'a paru complexe alors qu'elle pourrait être plus simple. Ceci dit, c'est vous qui codez, donc vous le faites selon votre créativité. La finalité, c'est que le projet aboutisse. :D
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre