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