2016-07-24 16 views
2

テキスト領域から既存のテキストを削除して新しいテキストを挿入したいが、それは動作しません。私は次のコードを持っています:テキストのテキストがなぜ削除されないのか?

#lang racket/gui 
(define myframe (new frame% 
        [label "testing"] 
        [width 600] 
        [height 400])) 
(define mytextarea (new text%)) 
(new editor-canvas% 
    [parent myframe] 
    [editor mytextarea]) 
(define (button_fn button event) 
     (begin 
      (send mytextarea delete    ; does not work; 
       (send mytextarea get-start-position) 
       (send mytextarea get-end-position)) 
      (send mytextarea insert "New string inserted" 0) ; works; 
     )) 
(define mybutton (new button% [parent myframe] 
        [label "delete"] 
        [callback button_fn ])) 
(send myframe show #t) 

エラーメッセージはありません。問題はどこでどのように解決できますか?

答えて

1

get-start-positionおよびget-end-positionは、現在のの選択の開始と終了を返します。選択範囲がない場合は、両方ともカーソルの位置を返します。

あなたは、テキストエリアの全体の内容を削除last-positionを使用する場合:

(send mytextarea delete 0 (send mytextarea last-position)) 

か、eraseメソッドを使用できます。

(send mytextarea erase) ;; deletes everything 
+0

をはい、両方の方法で動作します。ありがとう。 – rnso

+0

私はまた別の方法を見つけました: 'select-all'そして 'delete'。 – rnso

関連する問題