Marquee plug-in

From NSIS Wiki

Author: Takhir (talk, contrib)


Download: (9 KB)
Forum thread


Result looks like marquee tag on the html page, scrolling text. Some animation on the INSTFILES page during long installs may be useful (but this is applicable to other pages as well, for example as a help text near some controls), attached plug-in is one of possible ways. Text length to be displayed may be big enough, limited by NSIS 'stringsize' parameter, 1024 and 8096 bytes for common and special NSIS builds. 20 parameters allow to define text, position, border, colors, font and scroll. The only big limitation I see now - horizontal scroll only (both directions). Extended functionality (compare to html tag) - bi-directional movement (/swing).


"start" DLL function

Marquee::start [params] "text to display"

Starts the text movement.

Parameters. Can be any of the following:
Typeface name of font, default is Times (meaning Times New Roman).
Font color, hex value RGB, 0xFF0000 is red, default - current system color.
Height, in logical units, of the font's character cell or character, default is 18.
Average char width, in logical units, set -1 to use current system font, default is 10.
Weight of the font in the range 0 through 1000, default is 600 (FW_SEMIBOLD, WINGDI.H).
Character set, default is 0 (ANSI_CHARSET, WINGDI.H).
Italic font, default is no italic font.
Underlined font, default is no.
Number of text scrolls, set 1 for once, default is 0 (non-stop).
Text movement step, negative for left2right, higher value = faster scroll, default is 1 pixel. Default /START value for /STEP=0 is CENTER.
Text movement interval (between jumps), lower value = faster scroll, default is 20 milliseconds.
Additional left spacer, percents of the dialog width, default is 0 (%).
Additional right spacer, percents of the dialog width, default is left spacer value.
Text top spacer, percents of the dialog client area height, default is 60 (%).
Displays "x" pixel(s) border rectangle.
"x" pixels spacer between text clipping rect and border, 0 if border not set, default is 1.
Border color, default is text color.
Background color, default is drawing rect left top point color.
Window handle to paint on. Default is current installer page.
bi-directional movement
start position inside rectangle (for /step=0 mainly). Default position is outside paint rectangle
"text to display"
Max length 1024 or 8096.

"stop" DLL function


Stops the text movement.


   Marquee::start /NOUNLOAD /color=0x0000b0 /top=80 "Marquee plug-in"
;  add you code here
Personal tools