Accueil > > > [DLL] AJOUT D'UN CONTRÔLE RICHEDIT SCINTILLA SUR LES DIALOGBOX MIRC
[DLL] AJOUT D'UN CONTRÔLE RICHEDIT SCINTILLA SUR LES DIALOGBOX MIRC
Information sur la source
Description
Bonjour, Ne sachant pas trop quoi faire pour ma première DLL, je me suis dit qu'il pouvait être bon d'offrir la possibilité aux scripteurs d'utiliser un nouveau contrôle sur leurs dialogboxes : il s'agit d'une sorte de richedit conçu spécialement pour les éditeurs de texte. Il peut être utile pour "remplacer" l'éditeur de scripts de mIRC ou créer des addons, et peut combler le manque de DCX.dll quant aux richedits. Ce projet est une simple adaptation pour mIRC du projet Scintilla, libre et open source, utilisé pour la programmation compilée de parsers et éditeurs. Je sais que la programmation d'un tel contrôle n'est déjà pas évidente pour un programmeur C/C++, alors j'ai voulu faire quelque chose de très simple pour les scripteurs. En bref, ce contrôle permet : - coloration syntaxique du texte selon le lexique de mIRC ou un lexique prédéfini par le scripteur - surbrillance des accolades et balises ouverts - folding (affichage/masquage de blocs) - affichage des numéros de lignes - modification de la sélection - zoom de la zone de texte - guides d'indentation - affichage de caractères invisibles (fins de lignes, tabulations, espaces, etc) et bien d'autres fonctions utiles à un éditeur de texte : - ajout de texte - rechercher avancée de texte (sélection automatique ou fenêtre d'information, comme dans le bloc note) - annuler/refaire dernière action - remplacement de la sélection - retrouver une ligne en fonction d'une position ou l'inverse - retrouver un caractère selon la position - sélectionner du texte etc... Pour faciliter le scripting, ce contrôle renvoit des notifications au travers d'une alias callback. Il est donc possible de détecter : - ajout de caractère - clic de souris (pour le folding) - double-clic - mise en surbrillance - zoom - modification du texte (insertion ou suppression de texte) Un fichier d'aide au format xhtml est disponible dans le zip, ainsi que 3 exemples (niveaux débutant, intermédiaire et initié), également visibles ci-dessous. L'aide, bien que peu ergonomique (désolé, le xhtml n'est pas mon fort) est également visible en ligne sur http://uaipcreations.ovh.org/Aide_Scintilla_mIRC.h tm Attention, c'est une version d'essai, il m'est arrivé parfois de faire planter mIRC, je ne sais pas pourquoi. J'attends vos commentaires pour éventuellement corriger. De plus, la vérification syntaxique des procédures envoyées à la DLL est assez succinte, donc mettre du texte à la place d'un chiffre peut éventuellement poser problème (cette DLL a été codée en 1 jour ^^).
Source
- /*
- * Aliases de racourci
- */
-
- ;Alias d'appel
- alias -l b {
- if ($isid) return $dll(Scintilla_mIRC.dll,$1,$2-)
- else echo -a $dll(Scintilla_mIRC.dll,$1,$2-)
- }
-
- ;Alias de déchargement de la DLL
- alias unload_Scintilla dll -u Scintilla_mIRC.dll
-
-
- /*
- * Test 1 (niveau débutant)
- */
-
- ;Alias d'ouverture du dialog
- alias test_1 dialog -m test_Scintilla1 test_Scintilla1
-
- ;Boite de dialogue
- dialog test_Scintilla1 {
- title "Test Scintilla (niveau débutant)"
- option dbu
- size -1 -1 300 180
- button "Insérer du texte", 2, 80 155 60 20
- button "Rechercher du texte", 3, 156 155 60 20
- }
-
- ;Gestion d'événement "normaux"
- on *:dialog:test_Scintilla1:*:*:{
- if ($devent == init) {
- ;Création du contrôle Scintilla d'id "1", de fonction callback "callback1" et de style "clientedge"
- b SciCreate $dialog($dname).hwnd > 1 > callback1 > staticedge
- ;Redimentionnement du contrôle
- b SciSetPos -s 300 150
- ;Affichage des numéros de lignes
- b SciSetMarge -l 35
- }
- ;Clic sur un bouton
- elseif ($devent == sclick) {
- ;Bouton d'insertion de texte
- if ($did == 2) {
- ;Demande de saisie du texte à insérer
- var %a = $?"Taper le texte à insérer:"
- ;Insertion du texte
- b SciReplaceSel %a
- }
- ;Bouton de recherche de texte
- elseif ($did == 3) {
- var %a = $?"Taper le texte à rechercher:"
- b SciFindText -i %a
- }
- }
- elseif ($devent == close) {
- ;Déchargement de la DLL lors de la fermetuire de la dialogbox
- .timerSc 1 1 unload_Scintilla
- }
- }
-
- ;Alias callback envoyée à la DLL pour gérer les événement du composant
- alias callback1 {
- ;Détection d'un doubl-clic
- if ($2 == DoubleClick) echo -a Tu as double-cliqué sur la ligne: $3
- ;Détection d'un ajout de caractère
- elseif ($2 == CharAdded) echo -a Tu as ajouté le caractère: $3
- ;Détection d'une insertion de texte
- elseif (($2 == Modified) && ($3 == InsertText)) echo -a Tu as inséré $6 lignes à la position $4 $+ , de texte: $7-
- }
-
-
- /*
- * Test 2 (niveau intermédiaire)
- */
-
- ;Alias d'ouverture du dialog
- alias test_2 dialog -m test_Scintilla2 test_Scintilla2
-
- ;Boite de dialogue
- dialog test_Scintilla2 {
- title "Test Scintilla (niveau intermédiaire)"
- option dbu
- size -1 -1 300 180
- button "Afficher la selection", 2, 10 155 60 20
- edit "", 3, 80 155 210 20, multi return vsbar
- }
-
- ;Gestion d'événement "normaux"
- on *:dialog:test_Scintilla2:*:*:{
- if ($devent == init) {
- ;Création du contrôle Scintilla d'id "1", de fonction callback "callback1" et de style "clientedge"
- b SciCreate $dialog($dname).hwnd > 1 > callback2 > clientedge
- ;Redimentionnement du contrôle
- b SciSetPos -s 300 150
- ;Affichage des numéros de lignes
- b SciSetMarge -l 35
- ;Affichage du folder
- b SciSetMarge -f 20 $rgb(100,100,100) circle
- ;Modification de la couleur de selection et remplissage
- b SciSetSelStyle $rgb(230,230,230) fill
- ;Modification de la couleur de la ligne contenant le curseur
- b SciSetLineCursor $rgb(255,255,200)
- ;Mise en place d'une ligne verticale
- b SciSetVerticalLine 75 $rgb(200,200,200)
- ;Surlignement des brackets ({ et }) et tags (< et >) lorsque le curseur est dessus
- b SciSetHL -bu $rgb(255,0,0) $rgb(255,255,200)
- ;Zoom de 1 (échelle: -10 à 20)
- b SciSetZoom 1
- ;Indentation avec espaces, marqués par des lignes verticales
- b SciSetIndentGuide -s 4 $rgb(255,0,0) $rgb(0,0,0) lookboth
- ;Texte
- b SciSetText alias pouet $chr(123)
- b SciAddLine if (%a) $chr(123)
- b SciAddLine echo -a La variable existe
- b SciAddLine write fichier.txt Valeur : $+(%,a)
- b SciAddLine $chr(125)
- b SciAddLine else exit
- b SciAddLine $chr(125)
- ;Auto-indentation
- b SciAutoIndent
- ;Choix de caractères de fins de lignes : LF
- ;Cela permet de récupérer et d'afficher du texte compatible avec les normes des
- ;editbox de mIRC
- b SciSetEOL crlf
- }
- ;Clic sur le bouton d'affichage de la selection
- elseif (($devent == sclick) && ($did == 2)) {
- ;Récupération du texte selectionné
- var %buffer = $b(SciGetSelText,.)
- ;Affichage du texte selectionné dans l'editbox
- if (%buffer == $null) did -ra $dname 3 aucune selection
- else did -ra $dname 3 %buffer
- }
- elseif ($devent == close) {
- ;Déchargement de la DLL lors de la fermeture de la dialogbox
- .timerSc 1 1 unload_Scintilla
- }
-
- }
-
- ;Alias callback envoyée à la DLL pour gérer les événement du composant
- alias callback2 {
- ;Détection d'un clic sur la marge de folding
- if ($2 == MarginClick) b SciToggle $3
- }
-
-
- /*
- * Test 3 (niveau initié)
- */
-
- ;Alias d'ouverture du dialog
- alias test_3 dialog -m test_Scintilla3 test_Scintilla3
-
- ;Boite de dialogue
- dialog test_Scintilla3 {
- title "Test Scintilla (niveau initié)"
- option dbu
- size -1 -1 300 180
-
- menu "&Fichier", 1001
- item "A vous de jouer ;-)", 1101, 1001
-
- menu "&Edtition", 1002
- item "Annuler", 1201, 1002
- item "Refaire", 1202, 1002
- item break, 1203, 1002
- item "Selectionner tout", 1209, 1002
- item "Supprimer tout", 1210, 1002
- item break, 1211, 1002
- item "Rechercher", 1204, 1002
- item "Rechercher suivant", 1205, 1002
- item "Ateindre...", 1206, 1002
- item break, 1207, 1002
- item "Insérer l'heure", 1208, 1002
-
- menu "&Affichage", 1003
- item "Afficher/cacher ouleurs", 1301, 1003
- item break, 1302, 1003
-
- menu "Fins de ligne", 1303, 1003
- item "CR", 2301, 1303
- item "LF", 2302, 1303
- item "CRLF", 2303, 1303
- item break, 2304, 1303
- item "Afficher/cacher", 2305, 1303
-
- item "Afficher/cacher guide d'indentation", 1304, 1003
- item "Afficher/cacher ligne verticale", 1305, 1003
- item "Afficher/cacher espaces", 1306, 1003
-
- menu "&?", 1004
- item "A propos...", 1401, 1004
- }
-
- ;Gestion d'événement "normaux"
- on *:dialog:test_Scintilla3:*:*:{
- if ($devent == init) {
- b SciCreate $dialog($dname).hwnd > 1 > callback3 > clientedge staticedge
- b SciSetPos -s 300 180
- b SciSetMarge -l 35
- b SciSetMarge -f 20 $rgb(100,100,100)
- b SciSetSelStyle $rgb(230,230,230) fill
- b SciSetLineCursor $rgb(255,255,200)
- b SciSetVerticalLine 75 $rgb(200,200,200)
- set %lvert 1
- b SciSetHL -bu $rgb(255,0,0) $rgb(255,255,200)
- b SciSetZoom 1
- b SciSetIndentGuide -s 2 $rgb(255,0,0) $rgb(255,255,255) lookforward
- set %gindent 1
- b SciSetWord_mIRC 1
- b SciSetColor default $rgb(0,0,0) $rgb(255,255,255) 0 0 0
- b SciSetColor comment $rgb(130,140,230) $rgb(255,255,255) 0 0 0
- b SciSetColor regex $rgb(160,30,160) $rgb(255,255,255) 0 0 0
- b SciSetColor group $rgb(0,180,0) $rgb(255,255,255) 0 0 0
- b SciSetColor operator $rgb(255,0,0) $rgb(255,255,255) 0 0 0
- b SciSetColor number $rgb(245,70,245) $rgb(255,255,255) 0 0 0
- b SciSetColor word $rgb(160,30,160) $rgb(255,255,255) 0 1 0
- b SciSetColor word2 $rgb(0,0,160) $rgb(255,255,255) 1 0 0
- b SciSetColor quote $rgb(0,0,255) $rgb(255,255,255) 0 0 0
- set %color 0
- b SciShowColor 1
- ;Texte
- b SciSetText alias pouet $chr(123)
- b SciAddLine if (%a) $chr(123)
- b SciAddLine echo -a La variable existe
- b SciAddLine write fichier.txt Valeur : $+(%,a)
- b SciAddLine $chr(125)
- b SciAddLine else exit
- b SciAddLine $chr(125)
- ;Auto-indentation
- b SciAutoIndent
- ;Caractères de fin de ligne
- b SciSetEOL crlf
- set %ws 1
- }
- elseif ($devent == menu) {
- if ($did == 1401) var %a = $?!"Scintilla_mIRC.dll - WINKEL Vincent"
- ;On vérifie qu'on peut effectuer un UNDO puis on le fait si on peut
- else if (($did == 1201) && ($b(SciCanUndo))) .b SciUndo
- ;On vérifie qu'on peut effectuer un REDO puis on le fait si on peut
- elseif (($did == 1202) && ($b(SciCanRedo))) .b SciRedo
- ;Selection de tout le texte
- elseif ($did == 1209) .b SciSelectAll
- ;Suppression de tout le texte
- elseif ($did == 1210) { if ($?!"Etes-vous sûr(e) de vouloir tout supprimer ?") .b SciClearAll }
- ;Rechercher...
- if ($did == 1204) {
- ;Récupération du texte à chercher
- set %find_text $?"Saisissez le texte à rechercher:"
- ;Demande de recherche
- .b SciFindText -ai %find_text
- }
- ;Rechercher le suivant
- if ($did == 1205) .b SciFindText -i %find_text
- ;Atteindre la ligne...
- if ($did == 1206) { var %line = $?"Ligne ?" | if (%line isnum) .b SciGoToLine %line }
- ;Insérer l'heure
- if ($did == 1208) .b SciReplaceSel $time
- ;Affichage des couleurs
- if ($did == 1301) { .b SciShowColor %color | set %color $iif(%color == 1,0,1) }
- ;Caractères de fin de lignes
- if ($did == 2301) .b SciSetEOL cr
- if ($did == 2302) .b SciSetEOL lf
- if ($did == 2303) .b SciSetEOL crlf
- if ($did == 2305) .b SciSetShowEOL $iif($b(SciGetShowEOL,.),0,1)
- ;Guide d'indentation
- if ($did == 1304) { .b SciSetIndentGuide $iif(%gindent == 1,-h,-s 2 $rgb(255,0,0) $rgb(255,255,255) lookboth) | set %gindent $iif(%gindent == 1,0,1) }
- ;Ligne verticale
- if ($did == 1305) { .b SciSetVerticalLine $iif(%lvert == 1,-1 $rgb(255,255,255),75 $rgb(200,200,200)) | set %lvert $iif(%lvert == 1,0,1) }
- ;Espaces
- if ($did == 1306) { .b SciSetShowWS %ws | set %ws $iif(%ws == 1,0,1) }
- }
- elseif ($devent == close) {
- ;Déchargement de la DLL lors de la fermeture de la dialogbox
- .timerSc 1 1 unload_Scintilla
- }
- }
-
- ;Alias callback envoyée à la DLL pour gérer les événement du composant
- alias callback3 {
- echo 3 -a $1-
- ;Détection d'un clic sur la marge de folding
- if ($2 == MarginClick) b SciToggle $3
- }
- ;End of file
/*
* Aliases de racourci
*/
;Alias d'appel
alias -l b {
if ($isid) return $dll(Scintilla_mIRC.dll,$1,$2-)
else echo -a $dll(Scintilla_mIRC.dll,$1,$2-)
}
;Alias de déchargement de la DLL
alias unload_Scintilla dll -u Scintilla_mIRC.dll
/*
* Test 1 (niveau débutant)
*/
;Alias d'ouverture du dialog
alias test_1 dialog -m test_Scintilla1 test_Scintilla1
;Boite de dialogue
dialog test_Scintilla1 {
title "Test Scintilla (niveau débutant)"
option dbu
size -1 -1 300 180
button "Insérer du texte", 2, 80 155 60 20
button "Rechercher du texte", 3, 156 155 60 20
}
;Gestion d'événement "normaux"
on *:dialog:test_Scintilla1:*:*:{
if ($devent == init) {
;Création du contrôle Scintilla d'id "1", de fonction callback "callback1" et de style "clientedge"
b SciCreate $dialog($dname).hwnd > 1 > callback1 > staticedge
;Redimentionnement du contrôle
b SciSetPos -s 300 150
;Affichage des numéros de lignes
b SciSetMarge -l 35
}
;Clic sur un bouton
elseif ($devent == sclick) {
;Bouton d'insertion de texte
if ($did == 2) {
;Demande de saisie du texte à insérer
var %a = $?"Taper le texte à insérer:"
;Insertion du texte
b SciReplaceSel %a
}
;Bouton de recherche de texte
elseif ($did == 3) {
var %a = $?"Taper le texte à rechercher:"
b SciFindText -i %a
}
}
elseif ($devent == close) {
;Déchargement de la DLL lors de la fermetuire de la dialogbox
.timerSc 1 1 unload_Scintilla
}
}
;Alias callback envoyée à la DLL pour gérer les événement du composant
alias callback1 {
;Détection d'un doubl-clic
if ($2 == DoubleClick) echo -a Tu as double-cliqué sur la ligne: $3
;Détection d'un ajout de caractère
elseif ($2 == CharAdded) echo -a Tu as ajouté le caractère: $3
;Détection d'une insertion de texte
elseif (($2 == Modified) && ($3 == InsertText)) echo -a Tu as inséré $6 lignes à la position $4 $+ , de texte: $7-
}
/*
* Test 2 (niveau intermédiaire)
*/
;Alias d'ouverture du dialog
alias test_2 dialog -m test_Scintilla2 test_Scintilla2
;Boite de dialogue
dialog test_Scintilla2 {
title "Test Scintilla (niveau intermédiaire)"
option dbu
size -1 -1 300 180
button "Afficher la selection", 2, 10 155 60 20
edit "", 3, 80 155 210 20, multi return vsbar
}
;Gestion d'événement "normaux"
on *:dialog:test_Scintilla2:*:*:{
if ($devent == init) {
;Création du contrôle Scintilla d'id "1", de fonction callback "callback1" et de style "clientedge"
b SciCreate $dialog($dname).hwnd > 1 > callback2 > clientedge
;Redimentionnement du contrôle
b SciSetPos -s 300 150
;Affichage des numéros de lignes
b SciSetMarge -l 35
;Affichage du folder
b SciSetMarge -f 20 $rgb(100,100,100) circle
;Modification de la couleur de selection et remplissage
b SciSetSelStyle $rgb(230,230,230) fill
;Modification de la couleur de la ligne contenant le curseur
b SciSetLineCursor $rgb(255,255,200)
;Mise en place d'une ligne verticale
b SciSetVerticalLine 75 $rgb(200,200,200)
;Surlignement des brackets ({ et }) et tags (< et >) lorsque le curseur est dessus
b SciSetHL -bu $rgb(255,0,0) $rgb(255,255,200)
;Zoom de 1 (échelle: -10 à 20)
b SciSetZoom 1
;Indentation avec espaces, marqués par des lignes verticales
b SciSetIndentGuide -s 4 $rgb(255,0,0) $rgb(0,0,0) lookboth
;Texte
b SciSetText alias pouet $chr(123)
b SciAddLine if (%a) $chr(123)
b SciAddLine echo -a La variable existe
b SciAddLine write fichier.txt Valeur : $+(%,a)
b SciAddLine $chr(125)
b SciAddLine else exit
b SciAddLine $chr(125)
;Auto-indentation
b SciAutoIndent
;Choix de caractères de fins de lignes : LF
;Cela permet de récupérer et d'afficher du texte compatible avec les normes des
;editbox de mIRC
b SciSetEOL crlf
}
;Clic sur le bouton d'affichage de la selection
elseif (($devent == sclick) && ($did == 2)) {
;Récupération du texte selectionné
var %buffer = $b(SciGetSelText,.)
;Affichage du texte selectionné dans l'editbox
if (%buffer == $null) did -ra $dname 3 aucune selection
else did -ra $dname 3 %buffer
}
elseif ($devent == close) {
;Déchargement de la DLL lors de la fermeture de la dialogbox
.timerSc 1 1 unload_Scintilla
}
}
;Alias callback envoyée à la DLL pour gérer les événement du composant
alias callback2 {
;Détection d'un clic sur la marge de folding
if ($2 == MarginClick) b SciToggle $3
}
/*
* Test 3 (niveau initié)
*/
;Alias d'ouverture du dialog
alias test_3 dialog -m test_Scintilla3 test_Scintilla3
;Boite de dialogue
dialog test_Scintilla3 {
title "Test Scintilla (niveau initié)"
option dbu
size -1 -1 300 180
menu "&Fichier", 1001
item "A vous de jouer ;-)", 1101, 1001
menu "&Edtition", 1002
item "Annuler", 1201, 1002
item "Refaire", 1202, 1002
item break, 1203, 1002
item "Selectionner tout", 1209, 1002
item "Supprimer tout", 1210, 1002
item break, 1211, 1002
item "Rechercher", 1204, 1002
item "Rechercher suivant", 1205, 1002
item "Ateindre...", 1206, 1002
item break, 1207, 1002
item "Insérer l'heure", 1208, 1002
menu "&Affichage", 1003
item "Afficher/cacher ouleurs", 1301, 1003
item break, 1302, 1003
menu "Fins de ligne", 1303, 1003
item "CR", 2301, 1303
item "LF", 2302, 1303
item "CRLF", 2303, 1303
item break, 2304, 1303
item "Afficher/cacher", 2305, 1303
item "Afficher/cacher guide d'indentation", 1304, 1003
item "Afficher/cacher ligne verticale", 1305, 1003
item "Afficher/cacher espaces", 1306, 1003
menu "&?", 1004
item "A propos...", 1401, 1004
}
;Gestion d'événement "normaux"
on *:dialog:test_Scintilla3:*:*:{
if ($devent == init) {
b SciCreate $dialog($dname).hwnd > 1 > callback3 > clientedge staticedge
b SciSetPos -s 300 180
b SciSetMarge -l 35
b SciSetMarge -f 20 $rgb(100,100,100)
b SciSetSelStyle $rgb(230,230,230) fill
b SciSetLineCursor $rgb(255,255,200)
b SciSetVerticalLine 75 $rgb(200,200,200)
set %lvert 1
b SciSetHL -bu $rgb(255,0,0) $rgb(255,255,200)
b SciSetZoom 1
b SciSetIndentGuide -s 2 $rgb(255,0,0) $rgb(255,255,255) lookforward
set %gindent 1
b SciSetWord_mIRC 1
b SciSetColor default $rgb(0,0,0) $rgb(255,255,255) 0 0 0
b SciSetColor comment $rgb(130,140,230) $rgb(255,255,255) 0 0 0
b SciSetColor regex $rgb(160,30,160) $rgb(255,255,255) 0 0 0
b SciSetColor group $rgb(0,180,0) $rgb(255,255,255) 0 0 0
b SciSetColor operator $rgb(255,0,0) $rgb(255,255,255) 0 0 0
b SciSetColor number $rgb(245,70,245) $rgb(255,255,255) 0 0 0
b SciSetColor word $rgb(160,30,160) $rgb(255,255,255) 0 1 0
b SciSetColor word2 $rgb(0,0,160) $rgb(255,255,255) 1 0 0
b SciSetColor quote $rgb(0,0,255) $rgb(255,255,255) 0 0 0
set %color 0
b SciShowColor 1
;Texte
b SciSetText alias pouet $chr(123)
b SciAddLine if (%a) $chr(123)
b SciAddLine echo -a La variable existe
b SciAddLine write fichier.txt Valeur : $+(%,a)
b SciAddLine $chr(125)
b SciAddLine else exit
b SciAddLine $chr(125)
;Auto-indentation
b SciAutoIndent
;Caractères de fin de ligne
b SciSetEOL crlf
set %ws 1
}
elseif ($devent == menu) {
if ($did == 1401) var %a = $?!"Scintilla_mIRC.dll - WINKEL Vincent"
;On vérifie qu'on peut effectuer un UNDO puis on le fait si on peut
else if (($did == 1201) && ($b(SciCanUndo))) .b SciUndo
;On vérifie qu'on peut effectuer un REDO puis on le fait si on peut
elseif (($did == 1202) && ($b(SciCanRedo))) .b SciRedo
;Selection de tout le texte
elseif ($did == 1209) .b SciSelectAll
;Suppression de tout le texte
elseif ($did == 1210) { if ($?!"Etes-vous sûr(e) de vouloir tout supprimer ?") .b SciClearAll }
;Rechercher...
if ($did == 1204) {
;Récupération du texte à chercher
set %find_text $?"Saisissez le texte à rechercher:"
;Demande de recherche
.b SciFindText -ai %find_text
}
;Rechercher le suivant
if ($did == 1205) .b SciFindText -i %find_text
;Atteindre la ligne...
if ($did == 1206) { var %line = $?"Ligne ?" | if (%line isnum) .b SciGoToLine %line }
;Insérer l'heure
if ($did == 1208) .b SciReplaceSel $time
;Affichage des couleurs
if ($did == 1301) { .b SciShowColor %color | set %color $iif(%color == 1,0,1) }
;Caractères de fin de lignes
if ($did == 2301) .b SciSetEOL cr
if ($did == 2302) .b SciSetEOL lf
if ($did == 2303) .b SciSetEOL crlf
if ($did == 2305) .b SciSetShowEOL $iif($b(SciGetShowEOL,.),0,1)
;Guide d'indentation
if ($did == 1304) { .b SciSetIndentGuide $iif(%gindent == 1,-h,-s 2 $rgb(255,0,0) $rgb(255,255,255) lookboth) | set %gindent $iif(%gindent == 1,0,1) }
;Ligne verticale
if ($did == 1305) { .b SciSetVerticalLine $iif(%lvert == 1,-1 $rgb(255,255,255),75 $rgb(200,200,200)) | set %lvert $iif(%lvert == 1,0,1) }
;Espaces
if ($did == 1306) { .b SciSetShowWS %ws | set %ws $iif(%ws == 1,0,1) }
}
elseif ($devent == close) {
;Déchargement de la DLL lors de la fermeture de la dialogbox
.timerSc 1 1 unload_Scintilla
}
}
;Alias callback envoyée à la DLL pour gérer les événement du composant
alias callback3 {
echo 3 -a $1-
;Détection d'un clic sur la marge de folding
if ($2 == MarginClick) b SciToggle $3
}
;End of file
Conclusion
J'attends toute remarque.
Pour tester les exemples, tapez /test_1 pour le niveau débutant, /test_2 pour le niveau intermédiaire et /test_3 pour le niveau initié.
Le code-source de la DLL (codée en C/C++) en également disponible dans le zip. Pour faire fonctionner cette DLL, vous n'avez besoin que de Scintilla_mIRC.dll et SciLexer.dll qui doivent impérativement être dans le même dossier. Le reste des fichiers inclus n'est que la doc ou les fichiers sources de la dll.
Bon scripting.
Historique
- 23 février 2009 21:55:26 :
- Anciennement compilée en debug, la dll a été recompilée en release. Elle devrait maintenant fonctionner sous toutes les machines.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
RichEdit [ par jujuquatre ]
~~~~~~~~~~~QuQuQuatrEuH~~~~~~~~~~~Salut j'ai fait un edit en couleur avec richedit sur ctl_gen.mdxet je voulais demander si il est possible de faire u
Problème avec le contrôle "list" dans une dialog [ par Squallou ]
Bonjour tout le monde =)je débute en scripting et en faisant ma fenêtre d'autojoin j'ai un petit problème :j'arrive à ajouter le c
A propos du RichEdit :x [ par Squallou ]
Coucou tout le monde.J'ai transformé un controle Edit en RichEdit avec la mdx mais j'ai trouvé nul part de documentation sur ce fameux contr
Comment effacer tout le texte d'un RichEdit :x [ par Squallou ]
Bonjour.Je me sers du controle RichEdit (incomplet et non documenté je sais v_v) pour faire un aperçu de mes couleurs d'écriture. Le pb
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : AIDERE : AIDE par Nico26000
Cliquez pour lire la suite par Nico26000 RE : AIDERE : AIDE par WorldDMT
Cliquez pour lire la suite par WorldDMT AIDEAIDE par Nico26000
Cliquez pour lire la suite par Nico26000
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|