I've attached a RAR file with an updated version of the source.
I changed it to run in a window as it was taking about 20 seconds to start and stop the program each time. If this wasn't a problem for you or you don't like it, just paste the code from my version into yours.
To be honest, you almost had it sussed. I've basically done something very similar to what you where doing to scale the center grey lines - for the dashed lines at the left and right: ; middle grey lines LineXY(CurrentX+(#LineWidth-Distance*0.04),ScreenLine,CurrentX+(#LineWidth+Distance*0.04),ScreenLine,LineColor) ; left dashed lines LineXY(CurrentX-Distance-((#LineWidth-Distance*0.16)), ScreenLine, CurrentX-Distance, ScreenLine,SideColor) ; right dashed lines LineXY(CurrentX+Distance,ScreenLine,CurrentX+Distance+((#LineWidth-Distance*0.16)),ScreenLine,SideColor)
For the left lines, we offset the start position of the line by an amount calculated using your Distance variable which lets us know how far down the screen (Y pos) we are. We do the same for the right side too, but offset the end position of the line instead of the start position.
You can change the thickness/scale of the lines by changing the 0.16 values above.
As you progress with this, you might want to work out those offsets in advance as you're performing the same multiplications a few times at present. It probably doesn't matter too much, but if you add more code and it starts to slow down, give it some thought. As your screen height stays the same, you could also pre-calculate a table or two with the various values and use that as a lookup table to get the best performance.
Once again, I learned a bit more about Pure Basic while doing this, so all good
Hope it helps and does what you want.
EDIT: Would help it I attached the file