!!! @paweld !!!
Hooray ! and many thanks.
I would never have thought that removing the canvas Brush & Fill would be the cause - I'd taken that as de riguer since that's what Winni had used in the initial code he kindly sent me.
I still don't understand the reason ( nor why it's necessary to add the TMemoryStream) but - for now - it seems I have working code that I may be able to transfer to my real program.
When I first ran your code - leaving the line colour and tooth count as they were - with the Gear Image in place (you don't have that in your copy of the program) I thought it still wasn't viable - the line colour was Green and the PolyLine was drawn against the Green Gear
Reversing the direction - which makes the line colour Red - meant that I could see it. Changing the default colour to White and Tooth count to 80 solved those issues.
Now that I have the Gear Image and the PolyLine 'co-incident', I can see that the scaling multiplier (PxScale in the constants) needs to be 24.1 - though no doubt I may have to review that in the real program where the tooth count can be anything between 20 & 127 in single step increments. That will be a trivial matter.
The probability is that I won't 'animate' the gears in the real program - there could be 6 gears in the train and they would all have to run at different speeds so there may be a calculation bottle-neck
- The display of the teeth will probably be quite sufficient . . . . and I can certainly use different colours to indicate direction of rotation.
In case there is any interest, I've attached a new version of the .ZIP file with these latest 'adjustments'.