1

Default-Button をクリックして、Allegro CL (バージョン 8.0.1) の Editable-Text コントロールの値を変更しようとしています。

について読んだこと(setf value)がありますが、例は見つかりませんでした。

オンクリックイベントに追加した関数は次のとおりです

    (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 "")
 )

何か助けはありますか?前もって感謝します。

4

3 に答える 3

0
(setf (slot-value widget 'value) "foo")

上記のようなもの。正しいパッケージでシンボル値を取得する必要があります。おそらく、WIDGET-VALUEのようなアクセサ関数もあります。次に、(setf(widget-value widget) "foo")が機能する可能性があります。

私はACLユーザーではありません-おそらくもっと良い方法があります。ACL固有の質問は、ユーザーのメーリングリストで行うのが最適です。

于 2010-02-10T20:25:25.407 に答える
0

私がこれを見つけた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" が multi-line-editable-text-1 になると、上記のように setf を使用して適切な属性 ("value" など) を設定できます。

お役に立てれば。

于 2011-08-05T09:02:15.073 に答える
0

関数「find-component」と「value」を一緒に使用する必要があります。

関数「find-component」はプロジェクト内のウィジェットを検索し、「value」はウィジェットの値を返します。

フォームに静的テキストがある場合、このように静的テキストの値を変更できます。

(let ((ed1 (find-component :static-text-1 :form1))) (setf (値 ed1) 「できました。」))

于 2014-02-24T06:53:40.893 に答える