I have a small DynamicModule that displays a slider for x and the result of evaluating a function f[x]. The following code works as desired:
DynamicModule[{f, x = 5},
f[x_] := {x, Sqrt[x]};
Column[{
Slider[Dynamic@x, {0, 25, 1}],
Dynamic@f[x]
}]
]

Now I want to store the results of f[x] in two variables arg and val for later use. The following code works, but it throws a Set::shape error during the assignment of the result, and the variables arg and val are not set.
DynamicModule[{f, x = 5, arg, val},
f[x_] := {x, Sqrt[x]};
Column[{
Slider[Dynamic@x, {0, 25, 1}],
{arg, val} = Dynamic@f[x],
Row[{"{arg,val} = ", Dynamic@{arg, val}}]
}]
]

The reason for the error is that Dynamic@f[x] is an object and not a list.
How can I fix this problem? Perhaps with something like Dynamic[f[x], someFunction] instead of {arg,val}=Dynamic[f[x]], where someFunction assigns arg and val?