I would like to have a command "RedoButton" which would make a button (or whatever control is suitable) that when clicked would print the value of a certain function over and over in the same place. So for example RedoButton["do it", RandomInteger[{1, 10}] would produce a button that, when clicked, would produce a random integer of the sort required, clicking it again would produce a possibly different random integer where the old one was, and so on. I have tried Toggle, Button, and numerous other commands but can't make any of them work correctly.
Asked
Active
Viewed 435 times
11
Verbeia
- 34,233
- 9
- 109
- 224
SixWingedSeraph
- 627
- 3
- 10
2 Answers
17
Maybe you could do something like this
SetAttributes[redoButton, HoldRest]
redoButton[str_, fun_] := DynamicModule[{result = Null},
Column[{Button[str, result = fun], Dynamic[result]}]]
redoButton["press", RandomInteger[20]]
Heike
- 35,858
- 3
- 108
- 157
-
That works -- thanks. – SixWingedSeraph May 02 '12 at 14:11
8
If you want to use the button itself to show the current value, this may help:
Button[Dynamic[x], x = RandomInteger[{1, 20}]]
You can then use x or Dynamic[x] etc. for further computation/display.
Yves Klett
- 15,383
- 5
- 57
- 124
