アレグロCLで編集可能なテキスト値を変更します
-
19-09-2019 - |
質問
私は、デフォルト・ボタンをクリックするとアレグロCL(バージョン8.0.1)で編集可能なテキストコントロールの値を変更しようとしています。
私は(setf value)
について読んだが、どんな例が見つかっていない。
私は上のクリックイベントにttachedしている機能は以下の通りです。
(defun form1-default-button-2-on-click (dialog widget)
(declare (ignorable dialog widget))
t)
私は(setf (slot value :txt 'value) 'TEXT)
と(setf value 'TEXT)
としてではなく、無駄に様々な方法を試してみた:)そこにコードの欠如があります見ることができるようにます。
フォームのダイアログアイテムスロットは
で定義された以下の要素を持つリストであります(list (make-instance 'default-button :font
(make-font-ex nil "Segoe UI / Default" 12) :left
56 :name :default-button-2 :on-change
'form1-default-button-2-on-change :top 36)
(make-instance 'editable-text :font
(make-font-ex nil "Segoe UI / Default" 12) :left
52 :name :txt :top 152 :value "")
)
すべてのヘルプ?事前に感謝します。
解決
(setf (slot-value widget 'value) "foo")
上記のような何か。あなたは正しいパッケージ内のシンボル値を取得する必要があります。おそらくWIDGET-VALUEのようなアクセサ関数もあります。次に、(setfの(ウィジェットと値のウィジェット) "foo" が)うまくいくかもしれない...
私は、ACLのユーザーじゃない - おそらく、より良い方法があります。 ACL具体的な質問が最高のメーリングリストそのユーザーに尋ねられます。
他のヒント
の例では、franz.com上のどこかにあります:
(defun form1-button5-on-change (widget new-value old-value)
(declare (ignorable widget new-value old-value))
(let ((szerkeszto (find-sibling :multi-line-editable-text-1 widget)))
(setf (value szerkeszto) "bla" ))
t) ; Accept the new value
のシンボル「szerkesztoは、」マルチライン編集可能なテキスト-1になり、その後、あなたは(「値」のような)適切な属性を設定するには、上記のようなのsetfを使うことができます。
は、このことができます願っています。
あなたが一緒に「成分見つける」と「値」機能を使用する必要があります。
機能「を見つけ成分は、」プロジェクト内のウィジェットを見つけます そして「値」はウィジェットの値を返します。
フォームで静的なテキストを持っている場合は、、あなたはこのような静的なテキストの値を変更することができます。
))をForm1):静的テキスト-1(((ED1(見つける成分を聞かせ (setfの(値ED1) "私はそれを作った。"))