Looks right.

I use

A fraction - the (time since last frame / 1000) and then the pixels per second can be say 200 or 400 or whatever rather than 0.1

dx := (FRAMETIME / 1000) * PIXELPERSECOND;

x :=x + dx;

draw at trunc(x)

Only thing you need to consider if DX gets too big. Either cap DX or make sure that you aren't skipping past other objects.