.nb version (values can be stored into a file)

Manipulate[
With[
{solution=NDSolve[{x''[t]==-(((x[t])/(Sqrt[x[t]^2+y[t]^2])))D[potential,r]/.r->(Sqrt[x[t]^2+y[t]^2]),y''[t]==-(((y[t])/(Sqrt[x[t]^2+y[t]^2])))D[potential,r]/.r->(Sqrt[x[t]^2+y[t]^2]),x[0]==x0,y[0]==0,x'[0]==0,y'[0]==v0},{x[t],y[t],x'[t],y'[t]},{t,0,1000},MaxSteps->∞](*numerical solution of the differential equation with the given potential and initial values*)

,angularMomentSquare=(1/2)(x0*v0)^2,absoluteDistance=(Sqrt[x[t]^2+y[t]^2])},coordinates={x[t],y[t]}/.solution;show=False;(*definition of constants and variables used below*)

;SetDirectory[NotebookDirectory[]];(*set directory for saving files to the current notebook directory*)

EventHandler[(*event handler for setting initial values using the mouse*)

TableForm[{
Show[
ParametricPlot[Evaluate[coordinates],{t,0,tplot},PlotStyle->Gray,PlotRange->2*x0,ImageSize->400,PlotPoints->Round[tplot]+10,AxesLabel->{If[show,"(Subscript[x, 0]) in m","x in m"],If[show,"(Subscript[v, 0]) in m/s","y in m"]}], (*parametric plot for showing the trajectory of the particle*)
Graphics[{{PointSize[.05],Pink,Point[coordinates/.t->tplot]},(*draw a point at the current position of the particle*)Text[If[show,Grid[{{"set new initial conditions:",SpanFromLeft,SpanFromLeft},{"distance =",pt[[1]],"m"},{"velocity =",pt[[2]],"m/s"}}],""],pt]}](*the text is shown when the mouse is dragged to view the picked initial conditions when the mouse is released*)
],

Show[
Plot[{angularMomentSquare/r^2,angularMomentSquare/r^2+potential,potential},{r,0,3*x0},ImageSize->400,AspectRatio->1.,PerformanceGoal->If[$ControlActiveSetting,"Speed","Quality"],AxesLabel->{"r in m","E"},Ticks->{Automatic,None}],(*show the potentials*)
Graphics[{PointSize[.015],Black,Point[{absoluteDistance,angularMomentSquare/absoluteDistance^2+ potential/.r->(Sqrt[x[t]^2+y[t]^2])}/.solution/.t->tplot]}](*show the current position of the particle in the potential*)
]

,If[save,valueTable=Table[Flatten[{Round[t,0.1],x[t]/.solution,y[t]/.solution}],{t,0,tplot,.1}];PrependTo[valueTable,{"time","x(t)","y(t)"}];PrependTo[valueTable,{"","v0 =",v0}];PrependTo[valueTable,{"","x0 =",x0}];PrependTo[valueTable,{"initial conditions:","",""}];PrependTo[valueTable,{"potential:","V(r)=",potential}];Export[filename,valueTable];save=False,""]},TableDirections->Row,TableAlignments->Top](*a table of values is constructed and saved when the save button is pushed; a head is prepended to the values to show the settings*)

,{"MouseUp":>({{x0,v0}=MousePosition["Graphics"],show=False,tplot=.01}),"MouseDragged":>({pt=MousePosition["Graphics"],show=True})}](*end of event handler; show new initial values when mouse is dragged and set them when mouse is released*)

],

(*the following are the control elements*)
{{potential,-5/r,"potential"},{-5/r->"Kepler",-5/r-5/r^2->"pertubative Kepler",-(5/(r^3))-(5/r)->"relativistic Kepler",r->"constant force potential",0.005* (r^2)->"harmonic oszillator",-(10/r)+0.1*(r^2)->"mod. harmonic oscillator",5/r->"repulsive",(7/r)+((r^2)/70)->"preset 1"},ControlType->PopupMenu},(*a pop up menu with presets for the potential*)
{{potential,-5r^-1,""},-5r^-1},(*to create the text field*)
{{fake,None,""},Button["apply",fake=None]&},(*a fake button to prevent the user pressing the enter button (that would open a new instance of the program)*)
Delimiter,(*stripe*)
Item["initial conditions",Alignment->Center],(*text*)
{{x0,5,"distance in m"},5},(*initial distance*)
{{v0,1,"velocity in m/s"},1},(*initial velocity*)
{{fake,None,""},Button["reset",{x0,v0}={5,1}]&},(*reset the initial values to x0=5 and v0=1*)
Delimiter,(*stripe*)
{{tplot,0.001,"time"},0.001,1000,ControlType->Animator,AnimationRunning->False,AppearanceElements->{"PlayPauseButton","FasterSlowerButtons"},AnimationRate->animationrate},(*time with play/pause, faster and slower buttons; the animation rate is set below*)
{{tplot,0.01,""},Button["reset",tplot=.01]&},(*resets the time*)
{{animationrate,1,"animation rate"},1,10},(*sets the animation rate*)
Delimiter,(*stripe*)
{filename,"values.dat"},(*sets the filename*)
{{save,False,""},Button["save values",save=True]&}(*save button*)
]

.cdf version (values can only be displayed)

Manipulate[
With[
{solution=NDSolve[{x''[t]==-(((x[t])/(Sqrt[x[t]^2+y[t]^2])))D[potential,r]/.r->(Sqrt[x[t]^2+y[t]^2]),y''[t]==-(((y[t])/(Sqrt[x[t]^2+y[t]^2])))D[potential,r]/.r->(Sqrt[x[t]^2+y[t]^2]),x[0]==x0,y[0]==0,x'[0]==0,y'[0]==v0},{x[t],y[t],x'[t],y'[t]},{t,0,1000},MaxSteps->∞](*numerical solution of the differential equation with the given potential and initial values*)

,angularMomentSquare=(1/2)(x0*v0)^2,absoluteDistance=(Sqrt[x[t]^2+y[t]^2])},coordinates={x[t],y[t]}/.solution;show=False;(*definition of constants and variables used below*)

If[showValues,valueTable=Table[Flatten[{Round[t,0.1],x[t]/.solution,y[t]/.solution}],{t,0,tplot,.1}];PrependTo[valueTable,{"time","x(t) in m","y(t) in m"}];PrependTo[valueTable,{"","v0 in m/s =",v0}];PrependTo[valueTable,{"","x0 in m =",x0}];PrependTo[valueTable,{"initial conditions:","",""}];PrependTo[valueTable,{"potential:","V(r)=",potential}];Grid[valueTable],

EventHandler[(*event handler for setting initial values using the mouse*)
TableForm[{
Show[
ParametricPlot[Evaluate[coordinates],{t,0,tplot},PlotStyle->Gray,PlotRange->2*x0,ImageSize->400,PlotPoints->Round[tplot]+10,AxesLabel->{If[show,"(Subscript[x, 0]) in m","x in m"],If[show,"(Subscript[v, 0]) in m/s","y in m"]}], (*parametric plot for showing the trajectory of the particle*)
Graphics[{{PointSize[.05],Pink,Point[coordinates/.t->tplot]},(*draw a point at the current position of the particle*)Text[If[show,Grid[{{"set new initial conditions:",SpanFromLeft,SpanFromLeft},{"distance =",pt[[1]],"m"},{"velocity =",pt[[2]],"m/s"}}],""],pt]}](*the text is shown when the mouse is dragged to view the picked initial conditions when the mouse is released*)
],

Show[
Plot[{angularMomentSquare/r^2,angularMomentSquare/r^2+potential,potential},{r,0,3*x0},ImageSize->400,AspectRatio->1.,PerformanceGoal->If[$ControlActiveSetting,"Speed","Quality"],AxesLabel->{"r in m","E"},Ticks->{Automatic,None}],(*show the potentials*)
Graphics[{PointSize[.015],Black,Point[{absoluteDistance,angularMomentSquare/absoluteDistance^2+ potential/.r->(Sqrt[x[t]^2+y[t]^2])}/.solution/.t->tplot]}](*show the current position of the particle in the potential*)

]
},TableDirections->Row,TableAlignments->Top]
,{"MouseUp":>({{x0,v0}=MousePosition["Graphics"],show=False,If[!showValues,tplot=.01]}),"MouseDragged":>({pt=MousePosition["Graphics"],show=True})}](*end of event handler; show new initial values when mouse is dragged and set them when mouse is released*)
]
],

(*the following are the control elements*)
{{potential,-5/r,"potential"},{-5/r->"Kepler",-5/r-5/r^2->"pertubative Kepler",-(5/(r^3))-(5/r)->"relativistic Kepler",r->"constant force potential",0.005* (r^2)->"harmonic oszillator",-(10/r)+0.1*(r^2)->"mod. harmonic oscillator",5/r->"repulsive",(7/r)+((r^2)/70)->"preset 1"},ControlType->PopupMenu},(*a pop up menu with presets for the potential*)
{{potential,-5r^-1,""},-5r^-1},(*to create the text field*)
{{fake,None,""},Button["apply",fake=None]&},(*a fake button to prevent the user pressing the enter button (that would open a new instance of the program)*)
Delimiter,(*stripe*)
Item["initial conditions",Alignment->Center],(*text*)
{{x0,5,"distance in m"},5},(*initial distance*)
{{v0,1,"velocity in m/s"},1},(*initial velocity*)
{{fake,None,""},Button["reset",{x0,v0}={5,1}]&},(*reset the initial values to x0=5 and v0=1*)
Delimiter,(*stripe*)
{{tplot,0.001,"time"},0.001,1000,ControlType->Animator,AnimationRunning->False,AppearanceElements->{"PlayPauseButton","FasterSlowerButtons"},AnimationRate->animationrate},(*time with play/pause, faster and slower buttons; the animation rate is set below*)
{{tplot,0.01,""},Button["reset",tplot=.01]&},(*resets the time*)
{{animationrate,1,"animation rate"},1,10},(*sets the animation rate*)
Delimiter,(*stripe*)
{showValues,{False,True}}(*show values checkbox*)
]