Combo

Fayen$
Messages postés
77
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
5 janvier 2004
- 12 nov. 2003 à 05:58
nestor_chat
Messages postés
19
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
20 janvier 2004
- 12 nov. 2003 à 19:42
Yo bon vla j'ai cree mon combo .... rien de compliqer jusque la :)
au faite j'ai deja une liste de tout mes servers sauvegardé dans mon fichier serverx.ini avec comme nom [serverx]

c'est quoi la ligne a mettre dans les remotes pour que quand je click sur mon combo j'ai toute la liste de mes servers et d'en choisir une parmis la liste ???

combo 645, 230 191 30 60, sort size edit drop, tab 500

je dois faire quoi now ?

11 réponses

cs_Kolibot
Messages postés
817
Date d'inscription
mercredi 25 juin 2003
Statut
Membre
Dernière intervention
19 avril 2004

12 nov. 2003 à 08:22
On *:dialog:<nom de ton dialog>:sclick:*: {
if $did == 645 {
%a = Nombre Total de Server Contenu dans serverx.ini
%b = 1
while %b != %a {
did -a $dname 645 $read(serverx.ini,%b)
inc %b
}
}
Mais ça ne va pas ce que tu dis, il faudrait que au init la liste se charge dans ton combo et puis que sclick corresponde à une selection dans le combo

By Koli :approve)
0
nestor_chat
Messages postés
19
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
20 janvier 2004

12 nov. 2003 à 13:27
- Pour remplir un combo on utilise INIT et nom pas sclick
- Comme on ne connait pas le nombre de ligne de ton fichier on utilise une boucle while.
- $lines renvoie le nombre de ligne d un fichier
- $read fait la lecture de la ligne

on *:dialog:<nom de ton dialog>:init:00:{
%a = $lines(serverx.ini)
%b = 1
while ( %b <= %a ) ) {
did -i $dname 645 %b $read(serverx.ini,%b)
inc %b
}
; le premier serveur est dans la combo par defaut
did -c $dname 645 1
}

Si tu declare ton combo:
combo 645, 230 191 30 60, sort size edit drop RESULT, tab 500

la fonction $dialog( nom, tab) te renvoie le resultat
%Serveur = $dialog( nom, tab )

Nestor
0
cs_Kolibot
Messages postés
817
Date d'inscription
mercredi 25 juin 2003
Statut
Membre
Dernière intervention
19 avril 2004

12 nov. 2003 à 14:20
On utilise ce que l'on veut pour remplir un Combo.
Que ce soit init, sclcik, dclick, n'importe quelle type d'action peut remplir un combo.
Ya des parties qui ne vont pas dans ton code nestor

on *:dialog:<nom de ton dialog>:init:00:{
%a = $lines(serverx.ini)
%b = 1
while ( %b <= %a ) ) {
did -i $dname 645 %b $read(serverx.ini,%b)
inc %b
}
; le premier serveur est dans la combo par defaut
did -c $dname 645 1
}

Ce qui est en gras et soit inutile, soit remplaçable par plus court...

By Koli :approve)
0
Fayen$
Messages postés
77
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
5 janvier 2004

12 nov. 2003 à 17:26
les 3 marches lol thx :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fayen$
Messages postés
77
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
5 janvier 2004

12 nov. 2003 à 17:27
a part kelkes ptits trucs :)

je prends celui de kolibot marche mieux ^^
0
nestor_chat
Messages postés
19
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
20 janvier 2004

12 nov. 2003 à 17:55
- Si on le met dans le init on ne fait l action qu une fois ... dans le sclick il est mis a jour a chaque click ... perte de temps....

On peut toujours faire un code plus court en terme de ligne !!! reste a savoir si il ne prends pas plus de temps a l execution ....

Doc officiel de MIRC :
on 1:dialog:name:event:id: {
...
}
...
init just before a dialog is displayed, controls can be initialized in this event. id is zero.
...

il y a effectivement un ) de trop mis le 00 est obligatoire

Nestor
0
Fayen$
Messages postés
77
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
5 janvier 2004

12 nov. 2003 à 18:16
Mais ça ne va pas ce que tu dis, il faudrait que au init la liste se charge dans ton combo et puis que sclick corresponde à une selection dans le combo

By Koli

[ je fais comment alors ? ]
0
cs_Kolibot
Messages postés
817
Date d'inscription
mercredi 25 juin 2003
Statut
Membre
Dernière intervention
19 avril 2004

12 nov. 2003 à 19:09
le 00 n'est absolument pas obligatoire. Tous mes dialogs fonctionnent très bien sans le 00 mais avec un *

Je vais te faire cela Fayen :) Attend 2minutes :D

By Koli :approve)
0
nestor_chat
Messages postés
19
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
20 janvier 2004

12 nov. 2003 à 19:10
Mais c est exactement ca...
LE init intitialise le combo
LE sclick indique que le combo est clické.
- si tu as mis RESULT sur la definition de ton combo, la fonction $dialog te renvoie le contenue de ton combo.
-Si tu ne met pas result tu peux charger une variable a la selection d'un item de ton combo :

on *:dialog::<nom de ton dialog>:sclick:645: {
%resultat = $did( 645 ).text <----- le text select
%resultat = $did( 645 ).sel <----- la ligne selectionnée
}

Quand tu rempli la combo tu a la ligne suivante
did -i $dname 645 %b $read(serverx.ini,%b)
- %b corespond a $did( 645 ).sel
- $read(serverx.ini,%b) corespond a $did( 645 ).text

Nestor
0
cs_Kolibot
Messages postés
817
Date d'inscription
mercredi 25 juin 2003
Statut
Membre
Dernière intervention
19 avril 2004

12 nov. 2003 à 19:23
On *:dialog:<nom de ton dialog>:*:*: {
if $devent == init {
%b = 1
while %b != $lines(serverx.ini) {
did -i $dname 645 %b $read(serverx.ini,%b)
inc %b
}
}
if $devent == sclick {
if $did == 645 {
Ici tu mets les commandes que tu veux.
Par exemple si tu souhaites faire correspondre
la selection à une variable tu dois écrire :
%c = $did(645)
Quoi qu'il en soit au l'instant où tu selectionneras
une objet dans le combo il s'affichera dans la partie
suppérieure :D
}
}
}

By Koli :approve)
0
nestor_chat
Messages postés
19
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
20 janvier 2004

12 nov. 2003 à 19:42
Juste montrer qu il vo mieux eviter les * ... en vert le code utile, en rouge tout ce qui est ecexcuté et qui ne sert a rien.

Optimisé un code ce n est pas faire le moins de ligne possible... mais faire travailler le processeur le moins possible.

on *:dialog:<nom de ton dialog>:*:*: {
/echo 4 -st $devent $did
}

on *:dialog:<nom de ton dialog>:init:645: {
/echo 3 -st $devent $did
}

on *:dialog:<nom de ton dialog>:sclick:645: {
/echo 3 -st $devent $did
}
0