Aide dialog svp

Signaler
Messages postés
18
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
12 mai 2004
-
Messages postés
18
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
12 mai 2004
-
salut.

j'aurais aimé si possible un petit coup de main de votre part.

je débute dans le mirc scripting et j'ai un souci pour crée un "gestionnaire de pub".

voici le dialog :

dialog gpub {
title "Gestionnaire de pub."
size -1 -1 200 140
option dbu
box "Crée ta propre pub.", 1, 2 0 196 138
list 2, 7 8 130 98, size ;liste des pub
list 3, 141 8 50 98, size ;affiche les pub
button "Ajouter", 6, 142 108 49 12, flat ;ajoute une pub
button "msg", 4, 62 122 41 12, flat ;envoie la pub sur le chan actif
button "amsg", 7, 107 122 40 12, flat ;envoie la pub sur tout les chan
button "query", 8, 151 122 40 12, flat ;envoie la pub sur une conversation privée
edit "", 5, 6 108 131 12 ;creation de la pub
edit "", 9, 6 122 52 12 ;titre de la pub
}

voila alors je voudrais que lorsque je rentre le code d'une pub dans la case 3 puis son titre dans la case 4 , que ceux ci s'affiche dans leurs liste apres avoir cliquer sur "ajouter".

puis egalement faire en sorte que je puisse envoyer, en cliquant sur le titre d'une pub, soit sur le chan actif, soit en amsg ou bien en query si je suis en discussion avec une personne.

Si quelqu'un avais l'amabilitée de m'aidée car j'ai regardé pas mal de tuto et je peine la dessus, j'ai essayé pas mal de chose mais rien :(

merci d'avance.

13 réponses

Messages postés
72
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
12 septembre 2004

Pour ajouter dans la liste voici,

on *:dialog:gpub:*:*: {
if ($devent == sclick) {
;qd on clique sur un bouton
if ($did == 6) && ($did(5)) && ($did(9)) {
;si le bouton est le 6 et on verifie qu'il y a qqch à ajouter dans les 2 cases
did -a gpub 2 $did(5)
;on ajoute le contenu de l'edit 5 dans la liste 2
did -a gpub 3 did(9)
;on ajoute le contenu de l'edit 9 dans la liste 3
}
}
}

mais pour stocker tt ca et lier entre eux les titres et les contenus des pubs je te conseilles de passer par les fichiers .ini. Te faire le code comme cela serait un peu fastidieux et je pense que si tu veux apprendre a coder ce ne serait pas te rendre service donc je te conseille de te renseigner sur les fichiers .ini, d'essayer et de venir reposer des questions si tu as des probs.

Voici l'adresse d'une tres bonne aide si tu ne l'as pas encore : http://www.scriptsdb.org/mirchlp.php

Bonne continuation.

babass
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
Bonjour,

Voici également mon tutorial sur les dialogs qui pourra t'aider :
http://poweredmgc.free.fr/sorn-creation/download.php?file=mircscript.tuto.dialog

Ensuite, comme te l'a dit babass, pour stocker les données, penche toi sur le systeme ini, tu auras besoin à mon avis de : /writeini, $readini(), $ini
(et pense à rajouter sur ton dialog un bouton pour del)
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667
Messages postés
18
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
12 mai 2004

merci Babass.

tu as raison sur le faite que je veux apprendre et que me faire le tout ne me serais pas d'une grande utilitée.

je me suis surement la expliqué, ce que je voulais surtout c une aide plus precise concerant ce genre de dialog car dans tout ces tuto je m'y perd un peu ;)

mais je pense que je vais trouver sur scriptsdb et peut etre qu'un jour ...... :)

merci encore
Messages postés
18
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
12 mai 2004

ah j'avais pas vu le msg de sorndrixer ;) salut a toi.

oui apres avoir poster le premier message je me suis appercu que ca manquait et je l'ai ajouter, voir ci dessous :

dialog gpub {
title "Gestion pub vP-ScriPt."
size -1 -1 200 140
option dbu
icon C:\mIRC_6_12\images\icone\vP.ico, 0
box "Crée ta propre pub.", 1, 2 0 196 138
list 2, 7 8 130 98, size
list 3, 141 8 50 98, size, style vsbar
button "Ajouter", 6, 142 108 33 12, flat
button "msg", 4, 62 122 41 12, flat
button "amsg", 7, 107 122 40 12, flat
button "query", 8, 151 122 40 12, flat
edit "", 5, 6 108 131 12
edit "", 9, 6 122 52 12
button "X", 10, 179 108 12 12, flat
}

sinon il est tres bien ton tuto sorn je pense que je vais pas mal progresser avec celui ci.
Messages postés
18
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
12 mai 2004

Bon me revoila toujours à la recherche d'une petite aide.

j'ai refais mon dialog d'une maniere differente mais j'ai pas mal de souci.

1erement dans mon combo je ne peut ajoute un titre avec un espace.

2ement dans mon edit je ne peut pas aller plus loin que le permet la taille de cette edit.

et je ne comprend po comment faire pour supprimé.

je n'ai pas reussi a faire en sorte que cela s'inscrive dans un .ini (encore trop noob lol) je l'ai donc fait en variable et ca marche pas mal sauf ces quelque point.

je met le code ci dessous si une âme charitable pouvait m'aider ce serais bien cool.

alias vppub dialog -m vppub vppub
dialog vppub {
title "Gestion pub vP-ScriPt."
size -1 -1 200 140
option dbu
icon C:\mIRC_6_12\images\icone\vP.ico, 0
box "Crée ta propre pub.", 1, 2 0 196 138
combo 2, 6 9 54 111, size
edit "", 3, 68 7 127 111
button "Ajouter", 4, 6 121 55 12
button "Modiffier", 5, 67 121 39 12
button "Supprimer", 6, 111 121 39 12
button "OK", 7, 155 121 39 12
}

on *:dialog:vppub:init:*:{
if (%nbpub > 0) {
set %pubin 0
:loop
inc %pubin
did -a vppub 2 $gettok(%rec_pub,%pubin,44)
if (%pubin < %nbpub) { goto loop }
unset %pubin
}
if ($did(2) == $null) { did -b vppub 3,4 }
did -ra vppub 3 %hpub
}

on *:dialog:vppub:sclick:2:{
if ($did(2) != $null) { did -e vppub 3 | did -b vppub 4 }
did -ra vppub 3 %vppub [ $+ [ $did(2) ] ]
}

on *:dialog:vppub:edit:2:{
if ($did(2) == $null) {
did -br vppub 3
did -b vppub 4
did -ra vppub 3 %hpub
}
if (%vppub [ $+ [ $did(2) ] ] == $null && $did(2) != $null) {
did -e vppub 4
did -br vppub 3
did -ra vppub 3 %hpub
}
if ($did(2) != $null && %vppub [ $+ [ $did(2) ] ] != $null) {
did -e vppub 3
did -b vppub 4
did -ra vppub 3 %vppub [ $+ [ $did(2) ] ]
}
}
on *:dialog:vppub:sclick:5:{
unset %vppub [ $+ [ $did(2) ] ]
set %Lines $did(3).lines
set %linc 0
:Next
inc %linc
set %vppub [ $+ [ $did(2) ] ] %vppub [ $+ [ $did(2) ] ] $did(vppub,3,%linc).text
if (%linc < %Lines) { goto next }
if (%linc > %Lines) { goto fin }
:fin
.set %ligne [ $+ [ $did(2) ] ] %lpvp
.write -l [ $+ [ %lpvp ] ] scripts/gest_pub.vp . [ $+ [ $did(2) ] ] $+ :/me %vppub [ $+ [ $did(2) ] ]
}

on *:dialog:vppub:sclick:4:{
if ($did(2).text !isin %rec_pub) {
set %rec_pub %rec_pub $+ $did(2).text $+ ,
inc %nbpub 7
inc %lpvp 7
did -a vppub 2 $did(2).text
}
}
on *:dialog:vppub:sclick:7:{
.reload -rs scripts/gest_pub.vp
}

merci d'avance.
____________________
Etre conscient de son ignorance, c'est tendre vers la connaissance.
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
Rebonjour,

"1erement dans mon combo je ne peut ajoute un titre avec un espace."
Essaie un replace sur ton did, comme celui-ci :
$replace($did(ID),$chr(32),$chr(160))
(mIRC est souvent allergique au caractère d'espacement 32)

"2ement dans mon edit je ne peut pas aller plus loin que le permet la taille de cette edit."
Très simple, tu dois donner le paramètre AUTOHS à ta cellule. (faisable facilement avec dialog studio)

"et je ne comprend po comment faire pour supprimé."
Pour supprimer quelque chose du combo ? Essaie /did -dN dialog où N est le numéro de la ligne du combo à supprimer.
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667
Messages postés
18
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
12 mai 2004

c cool Sorn Drixer j'avance pas mal grace a ton aide mais bon c encore le caffouilli car cela s'enregistre bizarement je rentre une premiere pub c ok elle s'enregsite dans le gest_pub.vp puis fugure dans le menu mais lorsque je rentre une deuxieme pub elle s'enregistre bien dans le gest_pub.vp mais en sautant plein de ligne entre les deux pub.

ni aurais t'il un moyen plus simple de le faire?

et merci encore

____________________
Etre conscient de son ignorance, c'est tendre vers la connaissance.
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
Fournis nous ton code actuel, pour que l'on puisse voir pourquoi cela rajoute des espaces entre ...

"ni aurais t'il un moyen plus simple de le faire?"
En quoi c'est dur ? c'est plutôt toi qui te complique la vie, à faire 36 variables pour pas grand chose (cf. ton code source plus haut) :P
Egalement, lorsque tu ne comptes pas réutiliser une variable plus tard, utilise var au lieu de set, sinon mIRC va s'encombrer de variables inutiles.
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667
Messages postés
18
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
12 mai 2004

Alors voici le code. tu vera po mal de chose ne marche po enfin marche mais pas comme je voudrais j'suis arrivé a un point j'me suis paumé complet lol.

menu nicklist,Query { 
  Gestion pub.
  .gest_pub:/vppub
  .-

}

alias vppub dialog -m vppub vppub
dialog vppub {
  title "Gestion pub vP-ScriPt."
  size -1 -1 200 140
  option dbu
  icon C:\mIRC_6_12\images\icone\vP.ico, 0
  box "Crée ta propre pub.", 1, 2 0 196 138
  combo 2, 6 9 54 111, size
  edit "", 3, 68 7 127 111, autohs
  button "Ajouter", 4, 6 121 55 12
  button "Modiffier", 5, 67 121 39 12
  button "Supprimer", 6, 111 121 39 12
  button "OK", 7, 155 121 39 12
}

on *:dialog:vppub:init:*:{
  if (%nbpub > 0) {
    set %pubin 0
    :loop
    inc %pubin
    did -a vppub 2 $gettok(%rec_pub,%pubin,44)
    if (%pubin < %nbpub) { goto loop }
    unset %pubin
  } 
  if ($replace($did(2),$chr(32),$chr(160)) == $null) { did -b vppub 3,4 }
  did -ra vppub 3 %hpub
}

on *:dialog:vppub:sclick:2:{
  if ($replace($did(2),$chr(32),$chr(160)) != $null) { did -e vppub 3 | did -b vppub 4 }
  did -ra vppub 3 %vppub [ $+ [ $did(2) ] ]
}

on *:dialog:vppub:edit:2:{
  if ($replace($did(2),$chr(32),$chr(160)) == $null) { 
    did -br vppub 3
    did -b vppub 4
    did -ra vppub 3 %hpub
  }
  if (%vppub [ $+ [ $replace($did(2),$chr(32),$chr(160)) ] ] == $null && $did(2) != $null) { 
    did -e vppub 4
    did -br vppub 3
    did -ra vppub 3 %hpub
  }
  if ($did(2) != $null && %vppub [ $+ [ $did(2) ] ] != $null) {
    did -e vppub 3
    did -b vppub 4
    did -ra vppub 3 %vppub [ $+ [ $did(2) ] ]
  }
}
on *:dialog:vppub:sclick:5:{
  unset %vppub [ $+ [ $replace($did(2),$chr(32),$chr(160)) ] ]
  set %Lines $did(3).lines
  set %linc 0
  :Next
  inc %linc
  set %vppub [ $+ [ $did(2) ] ] %vppub [ $+ [ $did(2) ] ] $did(vppub,3,%linc).text
  if (%linc < %Lines) { goto next }
  if (%linc > %Lines) { goto fin }
  :fin
  .set %ligne [ $+ [ $did(2) ] ] %lpvp
  .write -l [ $+ [ %lpvp ] ] scripts/gest_pub.vp . [ $+ [ $did(2) ] ] $+ :/me %vppub [ $+ [ $did(2) ] ]
}

on *:dialog:vppub:sclick:4:{
  if ($did(2).text !isin %rec_pub) {
    set %rec_pub %rec_pub $+ $did(2).text $+ ,
    inc %nbpub 7
    inc %lpvp 7
    did -a vppub 2 $did(2).text
  }
}
on *:dialog:vppub:sclick:7:{
  .reload -rs scripts/gest_pub.vp
}



merci d'avance.

____________________
Etre conscient de son ignorance, c'est tendre vers la connaissance.
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
Houla, tu me pommes aussi, c'est vraiment mal organisé ton code !
1) pense à regrouper tes événements dialog
2) utilise le moins de variables possible, et utilise /var au lieu de /set quand c'est possible.
3) evite les boucles avec goto, while est un peu plus rapide, et est 'mieux organisé'.

Regarde voir ma source là :
http://www.ircfr.com/code.aspx?ID=18660

Tu verras que l'on peut se servir d'une LIST très facilement, et que c'est tout aussi pratique qu'un combo. (que je déconseille, par son attachement à son 'edit' fournis avec)
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667
Messages postés
18
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
12 mai 2004

oula ça doit etre le bordel alors pour reussir a te paumer ;)

qu'enttend tu pas regrouper mes evenement dialog ?

2) utilise le moins de variables possible, et utilise /var au lieu de /set quand c'est possible.
oula je debute lol va doucement ;) je vais essayer de regarder ça de plus près .

je vais essayer de passer par une liste et laiser tomber le combo puis resoudre le petit peu de bug qu'il y a lol enfin plutot mdr.

merci encore c vraiment cool de partager tes connaissances.

____________________
Etre conscient de son ignorance, c'est tendre vers la connaissance.
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
Regrouper les évenements dialog :
ON *:DIALOG:nomdudialog:*:*:{
if $devent == init { action à faire }
if $devent == sclick {
if $did == ID { tel action }
if $did == ID { tel action }
etc..
}
}

Pour /var, le but de créer une variable comme ça, c'est qu'elle s'auto-détruit à la fin de l'éxecution de ton code, alors qu'avec /set, non.
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667
Messages postés
18
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
12 mai 2004

oula je crois que je me suis trop pris la tête avec ça, je vais éssayer de faire autrement et d'essayer de faire avec le moins de variable possible.

merci encore pour votre aide. c bien cool.

restez pas trop loin vous risquez de me revoir débarquer d'ici peu ;)

____________________
Etre conscient de son ignorance, c'est tendre vers la connaissance.