2010-02-10 5 views
1

기본 버튼을 클릭하여 Allegro CL (버전 8.0.1)에서 편집 가능한 텍스트 컨트롤의 값을 변경하려고합니다.Allegro CL에서 편집 가능한 텍스트 값 변경

나는 (setf value)에 대해 읽었지만 예제를 찾지 못했습니다.

내가 온 클릭 이벤트에 ttached 한 기능이있는 내가 (setf (slot value :txt 'value) 'TEXT)(setf value 'TEXT) 만에 같은 다양한 방법을 시도했습니다 : 당신이 거기에 코드의 부족이있다 볼 수 있듯이

(defun form1-default-button-2-on-click (dialog widget) 
     (declare (ignorable dialog widget)) 

    t) 

다음 아무 소용이.

형태의 대화 - 아이템 슬롯

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

어떤 도움에 의해 정의 된 다음과 같은 요소 목록입니다? 미리 감사드립니다.

답변

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

위와 같은 것입니다. 올바른 패키지에 심볼 값을 가져와야합니다. 아마도 WIDGET-VALUE와 같은 접근 자 함수도있을 것입니다. 그런 다음 (setf (위젯 값 위젯) "foo") 작동 할 수 있습니다 ...

저는 ACL 사용자가 아닙니다. 아마도 더 나은 방법이있을 것입니다. ACL 관련 질문은 사용자 메일 링리스트에서 확인하는 것이 가장 좋습니다.

+0

솔루션 위젯 값이있는 함수도 작동하지 않습니다. – foliveira

+0

힌트 였지만 실제로 ACL에 메일 링리스트를 사용해야합니다. http://www.franz.com/support/acl.forum.lhtml –

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는"멀티 라인 편집 가능한 텍스트-1, 다음에 위와 같이 setf의를 사용할 수 있습니다된다 적절한 속성 (예 : '값')을 설정하십시오.

희망이 도움이됩니다.

0

"찾기 구성 요소"와 "값"기능을 함께 사용해야합니다.

"find-component"함수는 프로젝트에서 위젯을 찾고 "value"는 위젯의 값을 반환합니다.

정적 텍스트가있는 경우 양식의 정적 텍스트를 변경할 수 있습니다.

(하자 ((ED1 (찾을 구성 요소를 정적 텍스트-1 : 유치원 1))) (setf의 (값 ED1). "내가 만든")) '슬롯 가치'와