GUI component interaction: Difference between revisions
Content added Content deleted
m (→{{header|R}}) |
|||
Line 1,314: | Line 1,314: | ||
svalue(e) <- sample(1:1000, 1) |
svalue(e) <- sample(1:1000, 1) |
||
}) |
}) |
||
</lang> |
|||
=={{header|Racket}}== |
|||
<lang racket> |
|||
#lang racket/gui |
|||
(define frame (new frame% [label "Interaction Demo"])) |
|||
(define inp |
|||
(new text-field% [label "Value"] [parent frame] [init-value "0"] |
|||
[callback |
|||
(λ(f ev) |
|||
(define v (send f get-value)) |
|||
(unless (string->number v) |
|||
(send f set-value (regexp-replace* #rx"[^0-9]+" v ""))))])) |
|||
(define buttons (new horizontal-pane% [parent frame])) |
|||
(define inc-b |
|||
(new button% [parent buttons] [label "Increment"] |
|||
[callback (λ (b e) (let* ([v (string->number (send inp get-value))] |
|||
[v (number->string (add1 v))]) |
|||
(send inp set-value v)))])) |
|||
(define rand-b |
|||
(new button% [parent buttons] [label "Random"] |
|||
[callback (λ (b e) (when (message-box "Confirm" "Are you sure?" |
|||
frame '(yes-no)) |
|||
(send inp set-value (~a (random 10000)))))])) |
|||
(send frame show #t) |
|||
</lang> |
</lang> |
||