2017-04-23 73 views
1

我很難搞清楚如何在用戶點擊球拍後禁用按鈕。如何在用戶點擊球拍後禁用按鈕?

下面是對解釋一些示例代碼什麼IM做:

通過實例化框架%級做一個框架

(define frame (new frame% [label "Example"])) 

在框架做一個靜態文本消息

(define msg (new message% [parent frame] 
          [label "No events so far..."])) 

在框架中製作一個按鈕

(new button% [parent frame] 
    [label "Click Me"] 
    ; Callback procedure for a button click: 
    [callback (lambda (button event) 
       (send msg set-label "Button click") 
       )]) 

顯示通過調用其show方法

(send frame show #t) 

我也明白,[enabled #f]將禁用按鈕,如果我把它在該領域的框架,但它會禁用按鈕之前,我甚至點擊它,我希望它禁用點擊按鈕後按鈕。我認爲竅門在於回調,因爲回調發生在按鈕被點擊時,但我不知道如何解決這個問題。代碼將不勝感激!

+0

不要忘記接受答案。 – soegaard

回答

1

您可以使用以下method禁用窗口:

(send a-window enable enable?) 

所以,在你的情況下,回調變爲:

(send button enable #f) 

例如,修改新的按鈕:

(new button% [parent frame] 
      [label "Click Me"] 
      [callback (lambda (button event) 
         (send msg set-label "Button click") 
         (send button enable #f))]) 

將在用戶單擊時禁用按鈕。