Picwin

Résolu
Messages postés
76
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
9 août 2007
-
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
-
Comment peut-on créer une liste avec une vsbar en picwin ?

13 réponses

Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

avec des calculs ^^
tu boucles sur ce que tu veux écrire en augmentant la valeur en Y, qui doit être comprise dans une certaine fourchette
après tu dessines les ascenseurs qui déterminent la première ligne affichée, et tu en fais des boutons
Messages postés
76
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
9 août 2007

Sans vouloir te déranger ArKanis tu peux me montrer un exemple ?
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

regarde RMS, c'est ma dernière source sur ce site à l'heure actuelle, notamment l'alias rms.list :

alias -l rms.list {
  if (!$4) return
  drawrect -nr @RMS 10790052 1 $1-4
  drawrect -fnr @RMS 7237230 1 $calc($1 +1) $calc($2 +1) $calc($3 +1) $calc($4 +1)
  drawrect -fnr @RMS 16777215 1 $calc($1 +1) $calc($2 +1) $calc($3 -1) $calc($4 -1)  var %t 5, %m $0
  while %t <= %m {    var %c $gettok($1-,%t,32), %o $calc(%t * 15 - 75 + $2), %te = $remove($replace(%c,$chr(165),$chr(32)),!)
;La ligne qui suit est inutile dans ton cas
    if ($right(%c,1) == !) drawrect -fnr @RMS 11827320 1 $calc($1 +1) %o $calc($3 +1) 15
    if (%te) drawtext -cnr @RMS 0 Tahoma 10 $calc($1 +5) %o $calc($3 -10) 15 %te
    inc %t
  }
}
il fonctionne comme ceci :
/rms.list origineX origineY longueurX hauteurY Texte

Le token qui délimite les lignes est l'espace, ici le texte ne contient que quelques mots. Tu noteras que une ligne = un mot, et que dans ce mot, j'utilise des ¥ que je remplace par des espaces.
En modifiant un peu le code, tu peux arriver à faire lire un fichier .txt
Le nombre maximal de lignes n'est pas calculé ici, si tu modifies le code, tu dois le recalculer ou utiliser une condition en fonction des paramètres $2 et $4
Messages postés
76
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
9 août 2007

Merci, je vais essayer de voir se que je peu fair avec ton code.
Messages postés
76
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
9 août 2007

Parcontre ArKanis, quand j'ouvre la window il faut que je clique dans le menu channel sur la window pour que la liste apparait :s
Messages postés
76
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
9 août 2007

Et aussi excuse moi encore mais je débute en picwin, si tu voudrais bien mêttre des commentaires, sans vouloir te déranger.
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

l'alias utilise le paramètre -n pour dessiner
il est spécifié dans l'aide que :
The -n switch prevents the display from being updated immediately. This allows you to make changes to the window in the background and then display the results only when you've finished. You can update the display by using any of the /draw commands with only the window name specified.

fais un /drawdot @TaPW (exactement ça, sans coordonnées en X Y etc) une fois l'alias fini, il mettra tout à jour (cette méthode évite les clignotements)
Messages postés
76
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
9 août 2007

ouais mais sinom j'y arrive pas pour la liste, tu peux pas me donnais un coup de main ?
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

t'en es où ?
pour un .txt, ta boucle devrait être :  var %t 1, %m $lines(fichier.txt)
  while %t <= %m {
    if ($read(fichier.txt,%t)) drawtext -cnr @RMS 0 Tahoma 10 $calc($1 +5) $calc(%t * 15 - 15 + $2) $calc($3 -10) 15 $ifmatch
    inc %t
  }

qu'est ce que tu veux qui soit commenté ? en le lisant, on comprend assez facilement pourquoi on a ça, question de logique :/
%o représente la hauteur du texte, et %c le texte
à toi de donner les positions et les différentes longueurs
Messages postés
76
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
9 août 2007

Ok merci sa marche mais c'est pas posible de fair une vsbar pour fair défiler les textes ? Au bout d'un moment il n'y aura plus asser de place da,s la liste !
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

ben je l'ai dit dans mon premier message, tu dessines des ascenseurs
puis au lieu de var %t = 1, tu incrémentes une variable quand tu cliques sur "EN BAS", décrémentes avec "EN HAUT", cette variable représentant la ligne de départ (oublie pas de modifier le calcul de %o, il te faudrait une nouvelle variable)
Messages postés
76
Date d'inscription
samedi 12 août 2006
Statut
Membre
Dernière intervention
9 août 2007

Merci de ton aide, mais pour le début je vais essayer de fair simple. La Vsbar sa sera une autre étape.
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
J'ai fais un snippet permettant de crée des listes avec vsbar et hsbar
http://www.ircfr.com/codes/XLIST_36733.aspx

Si ta besoin d'aide, demande :)