Graduated colour bars to display progress or changing values.

It is very easy in any decent 'Paint' program ( I use GIMP) to draw graduated fills and other patterns. By putting this as a background and masking it with a solid rectangle ( usually this will be white or black) at a calculated sideways distance you can generate very smart bar displays.


    nomainwin

    WindowWidth  =300
    WindowHeight =300

    UpperLeftX   = 20
    UpperLeftY   = 20

    graphicbox #Meter.g,         60,  70, 170,  10
    graphicbox #Meter.g2,        50, 140, 180, 112
    graphicbox #Meter.g3,        30, 140,  10, 110

    statictext #Meter.st,  "",  100,  45, 100,  20
    'statictext #Meter.st2, "",  100,   2, 150,  30

    groupbox  #Meter.gb, "Temperature", 20, 20, 240,  70

    button     #Meter.bu1, "Colour change", [colChange], LR, 180, 150


    open "Colour-gradient bars." for window as #Meter

    #Meter, "trapclose [quit]"

    #Meter.g   "down"
    #Meter.g2  "down"
    #Meter.g3  "down ; size 8"
    #Meter.g3  "cls ; set 3 8 ; flush"

    loadbmp    "scale", "coloursMulti.bmp"
    #Meter.g2  "drawbmp scale 0 0"
    #Meter.g2  "flush"

    #Meter.st  "!font courier 8 bold"

    yOffset   =10
    barNumber =1

    i =0
    while i <100
    'for i =0 to 60 step 0.1
        temperature =1 +84 *( 1 +sin( i))
        #Meter.st using( "###", int( temperature)); " Celsius"
        #Meter.g "drawbmp scale 0 "; str$( int( yOffset -11.2 *barNumber))
        #Meter.g "place "; temperature; " 0"
        #Meter.g "backcolor black"
        #Meter.g "boxfilled 250 10"
        #Meter.g "flush"

        timer 100, [on]
        wait
      [on]
        timer 0
    'next i
        i =i +0.1
    wend
    wait

'   _______________________________________________________________________
[quit]
    close #Meter
    timer 0
    end

[colChange]
    barNumber =(barNumber +1) mod 11
    '#Meter.st2 "y displacement = "; barNumber
    #Meter.g3  "cls ; set 3 "; barNumber *11 -4
    wait