Page 1 sur 1

[..] Création de label automatique

Posté : jeu. 30 juin 2011 00:40
par Xtroyer
Bonsoir à tous =)

Voilà, j'ai un petit soucis, en effet, pour mon programme permettant de gérer ces comptes d'un jeu quel qu’il soit, l'utilisateur rempli des Edits ensuite enregistrés dans un INI de la manière suivante :

Code : Tout sélectionner

If FileExists(@DocumentsCommonDir & "\Comptes.ini") = 0 Then
    $chiffre = 0
Else
    $chiffre = IniRead(@DocumentsCommonDir & "\Compte.ini", "Nombre de compte", "NoDC", 0)
    $chiffre += 1
EndIf
IniWrite(@DocumentsCommonDir & "\Comptes.ini", "Nombre de compte", "NoDC", $chiffre)
IniWrite(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "NDC" & $chiffre, GUICtrlRead($IP_NDC))
IniWrite(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "MDP" & $chiffre, GUICtrlRead($IP_MDP))
IniWrite(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "Serveur" & $chiffre, GUICtrlRead($IP_SER))
IniWrite(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "lvl" & $chiffre, GUICtrlRead($IP_LVL))
EndIf
Ensuite, on les récupère puis on les dispose dans un Group dans une GUI :

Code : Tout sélectionner

If FileExists(@DocumentsCommonDir & "\Comptes.ini") = 0 Then
For $i = 0 To IniRead(@DocumentsCommonDir & "\Comptes.ini", "Nombre de compte", "NoDC", 0) Step 1
If $i = 0 Then
    $Label & $i = GUICtrlCreateLabel(IniRead(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "NDC" & $i, 0), 16, 104, 4, 4)
    $Label & $i = GUICtrlCreateLabel(IniRead(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "MDP" & $i, 0), 176, 104, 4, 4)
    $Label & $i = GUICtrlCreateLabel(IniRead(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "Serveur" & $i, 0), 336, 104, 4, 4)
    $Label & $i = GUICtrlCreateLabel(IniRead(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "lvl" & $i, 0), 432, 104, 4, 4)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
Else
    $pos += 10
    $Label & $i = GUICtrlCreateLabel(IniRead(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "NDC" & $i, 0), 16, 104 + $pos, 4, 4)
    $Label & $i = GUICtrlCreateLabel(IniRead(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "MDP" & $i, 0), 176, 104 + $pos, 4, 4)
    $Label & $i = GUICtrlCreateLabel(IniRead(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "Serveur" & $i, 0), 336, 104 + $pos, 4, 4)
    $Label & $i = GUICtrlCreateLabel(IniRead(@DocumentsCommonDir & "\Comptes.ini", "Comptes", "lvl" & $i, 0), 432, 104 + $pos , 4, 4)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
EndIf
Next
EndIf
Mais manque de pot ça fonctionne pas du tout quant à la création des label x) Une erreur de syntaxe au niveau de la création que je ne sais résoudre :x

Des idées ?

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 08:37
par jchd
Utilise un tableau d'identifiants, c'est mille fois plus propre et facile que Assign() (ce que tu voulais faire).

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 09:22
par mikell

Code : Tout sélectionner

$Label [color=#FF0000]& $i[/color] = GUICtrlCreateLabel()  ;  pas bon
$Label [color=#FF0000][$i][/color] = GUICtrlCreateLabel()   ; ça oui

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 16:47
par Xtroyer
J'y ai pensé ce matin dans le RER x) je test de suite =)

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 18:06
par mikell
Il me semble que ça devrait donner quelque chose de ce genre
► Afficher le texte

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 18:27
par Xtroyer
Euh, vu l'organisation de mon INI je ne pense pas utiliser ce code Mikell

INI :
[Nombre de compte]
NoDC=3
[Comptes]
NDC0=
MDP0=
Serveur0=
lvl0=
Interet0=MOY
NDC1=Essai
MDP1=test
Serveur1=osef
lvl1=60
Interet1=MOY

Code qui ne fonctionne toujours pas :
► Afficher le texte
Dites moi, comment on sait dans quel GUI va être créer le label ?

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 18:39
par mikell
Regarde GUISwitch() dans l'aide

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 19:34
par Xtroyer
Raaa ça ne fonctionne pas ><

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 20:59
par mikell
Xtroyer a écrit :Euh, vu l'organisation de mon INI je ne pense pas utiliser ce code Mikell
Tu l'as testé au moins ?

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 22:12
par Xtroyer
Je viens d'essayer et aucun label n'est visible :x

Re: [..] Création de label automatique

Posté : jeu. 30 juin 2011 22:58
par mikell
Ecoute, tu vas tester le script qui est là-dessous (sans rien y changer) en mettant le ini "Comptes.ini" tel que tu l'as écrit dans le même dossier
► Afficher le texte
et tu vas voir que ça marche :P

Re: [..] Création de label automatique

Posté : ven. 01 juil. 2011 17:00
par Xtroyer
Bon en fait c'est réglé, je ne sais pas trop d'où venais le problème mais bon x)

Par contre, j'aimerais savoir comment faire un ascenseur verticale car dès qu'il y a trop de label, cela dépasse de la page et on ne les voit plus, je crois me souvenir qu'il faut utiliser les groupbox mais je ne me rappelle plus de quelle manière :x

Re: [..] Création de label automatique

Posté : ven. 01 juil. 2011 19:50
par mikell
Tu devrais mettre ce sujet en "résolu" et ouvrir un nouveau sujet :wink:

Re: [R] Création de label automatique

Posté : dim. 03 juil. 2011 20:40
par Xtroyer
Me revoici =)

Voilà, le code fonctionne bien, mais j'aimerais savoir, quelque chose. En effet, lorsqu'on clic sur un bouton, cela crée les label et affiche la GUI, mais dès qu'on clic une deuxième fois, ça les recréer par dessus donnant l'impression qu'il se chevauche et j'aimerai éviter ça.
Je pensais créer la liste directement lors de la création de la GUI, utiliser GuiControlDelete et recréer par dessus mais ça ne semble pas fonctionner :x

Re: [..] Création de label automatique

Posté : mer. 06 juil. 2011 09:06
par mikell
Rhaa la la tu cogites pas assez :mrgreen:
Si j'ai bien compris, tu veux afficher tes labels à l'ouverture de la gui, et pouvoir ensuite rajouter une rangée de labels avec un bouton
Utilise les variables qui existent déjà !
Voilà un exemple (à toi de l'adapter) fait pour le ini de ton post précédent, essaye d'appuyer plusieurs fois sur le bouton :
► Afficher le texte
Tu remarqueras que la création des labels et leur mise à jour ont quelques points communs... pourquoi ne pas en faire en une fonction ? :wink:
► Afficher le texte