Code servant à afficher une aide contextuelle avec le contenu que vous donnez.
Pour affiner la qualité de votre aide, vous pouvez mettre de la mise en forme grâce aux codes mIRC BURK (gras, souligné, inversé, couleur) et vous pouvez également insérer des images.
Source / Exemple :
;/contexthelp <texte>
;$chr(127) pour les sauts de ligne
;Ex: /contexthelp Bonjour toip'tit gars!
;Pour laisser une ligne blanche, mettez un espace
;Les codes de contrôles (BURK) de mIRC sont acceptés
;Ex: /contexthelp Ouvre le fichier 7Ferme l'ancien
;Pour insérer une image à la position courante, vous devez insérer un balise <[img]> où img est un fichier image
;Seules les images au format bmp, jpg et png sont acceptées
;Si l'image n'a pas pu être affichée, la balise sera affichée
;Ex /contexthelp Voici une image: <[mon image.bmp]>
;Ferme l'aide contextuelle si l'utilisateur a appuyé sur une touche
on *:keydown:@contexthelp:*:window -c @contexthelp
alias contexthelp {
;Initialisation des variables
var %v = 0, %w = 0, %i = 1 , %cnt = $$1- , %match = "" , %wesp = $width($chr(32),verdana,11), %cur_width = 0
tokenize 127 $replace($1-,$chr(32),$chr(160))
;Fenêtre cachée de même dimensions que le desktop
window -ph @context_tmp 0 0 $window(-1).w $window(-1).h
;Fond jaunâtre
drawrect -rf @context_tmp $rgb(255,255,233) 1 0 0 $window(@context_tmp).w $window(@context_tmp).h
while ($ [ $+ [ %i ] ]) {
%match = $ifmatch
%cur_width = $width(%match,verdana,11)
if (%match) {
if (!$regex(%match,/<\[([^\?\*"<>\|]+.(?:bmp|jpg|png))\]>/gi)) {
drawtext -pbr @context_tmp $rgb(0,0,0) $rgb(255,255,233) verdana 11 1 %v %match
inc %v 14
}
else {
;party time
var %z = 1 , %a = 1 , %l = 1 , %bas = 0 , %cont = 1 , %r = $replace($regml(%z),$chr(160),$chr(32)), %pos = $regml(%z).pos , %iw , %ih , %temp
while (%cont) {
if ($calc(%pos - 2) > %a) {
var %tmp = $calc($ifmatch +1), %str = $mid(%match,%a,$calc(%tmp - %a - 1))
drawtext -pbr @context_tmp $rgb(0,0,0) $rgb(255,255,233) verdana 11 %l %v %str
inc %l $width(%str,verdana,11)
if (14 > %bas) %bas = 14
inc %a $len(%str)
}
if ($pic(%r)) {
%iw = $pic(%r).width | %ih = $pic(%r).height
drawpic @context_tmp %l %v " $+ %r $+ "
inc %l %iw
inc %a $len($+(<[,%r,]>))
if (%ih > %bas) %bas = $calc(%ih + 2)
}
elseif (%cont == 1) {
drawtext -pbr @context_tmp $rgb(0,0,0) $rgb(255,255,233) verdana 11 %l %v <[ $+ $regml(%z) $+ ]>
inc %l $width($+(<[,%r,]>),verdana,11)
inc %a $len($+(<[,%r,]>))
if (14 > %bas) %bas = 14
}
inc %z
if ($regml(%z)) {
%r = $replace($ifmatch,$chr(160),$chr(32))
%pos = $regml(%z).pos
%cont = 1
}
elseif ($calc($len(%match) - %a) >= 0) {
var %temp = $mid(%match,%a)
drawtext -pbr @context_tmp $rgb(0,0,0) $rgb(255,255,233) verdana 11 %l %v %temp
inc %l $width(%temp,verdana,11)
if (14 > %bas) %bas = 14
%cont = 0
}
else %cont = 0
}
%cur_width = %l - 1
inc %v %bas
}
if (%cur_width > %w) %w = $ifmatch
}
inc %i
}
inc %w 5
inc %v 3
;Création de la fenêtre d'aide contextuelle
window -phkod +b @contexthelp $calc($mouse.dx +8) $mouse.dy %w %v
drawcopy @context_tmp 0 0 %w %v @contexthelp 0 0
window -c @context_tmp
window -a @contexthelp
.timerwincheck 0 0 contexthelp.check
}
;Ferme l'aide contextuelle si elle n'est pas la fenêtre active.
alias contexthelp.check { if (!$window(@contexthelp)) .timerwincheck off | if (!$appactive) || $active != @contexthelp { .timerwincheck off | window -c @contexthelp } }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.