Sponsored links

【AutoLISP DCL】イメージ(画像)ボタン にアクションを付ける

Sponsored links
ダイアログボックス
Sponsored links

画像ボタンに押したときに実行する処理と紐づけして、アクションを付けます。

Sponsored links

予備知識

画像ボタンには、スライドを使います。
表示させるスライドを用意し、SLIDE-A という名前でサポートファイルの検索パス内のフォルダに保存してください。

スライドの作り方についてはコチラを。

画像ボタンタイルにアクションを付ける

紐づけする処理

今回は、ボタンと、Hello World メッセージボックスが出る関数を紐づけします。

(defun hello ()
  (alert "Hello World")
)

コマンドを実行すると右側のダイアログボックスが出てきて、画像をクリックすると、左側のメッセージボックスが出てきます。

DCL

DCLは、以下のAutoLISPプログラムで呼び出すので、JagaDCL.dclという名前で、サポートファイルの検索パス内のフォルダに保存してください。

Test_ImageButton:dialog {label= "Image Dialog Box";

  :image_button {key="A"; height=10; width=10; color=250; action="(hello)";}   
    
ok_cancel;
}

ボタンタイルにアクション属性を付けます。

action="(hello)";

この部分がアクション属性で、”(hello)” このようにボタンを押されたら実行したい関数を入れます。DCLとやり取りする場合、関数名には( )だけではなく、” ” も付くので気を付けて下さい。

AutoLISP

ダイアログボックスを表示、画像ボタンタイルにスライドを表示、OK(accept) / Cancel ボタンで閉じる部分を設定します。 実行させる関数 hello も読み込んでください。


(defun c:test (/ dcl_id Act)

   (setq dcl_id (load_dialog "JagaDCL.dcl")) ;
   
      (if (not (new_dialog "Test_ImageButton" dcl_id))
	      (progn
            (princ "***ダイアログボックスが見つかりません***")
            (exit)
      ));if 
;-----------------------------------------------------------
  
     (start_image "A")
       (slide_image 0 0 (dimx_tile "A")(dimy_tile "A") "SLIDE-A")	
     (end_image)

;-----------------------------------------------------------
      (action_tile "accept" "(done_dialog 1)")
      (action_tile "cancel" "(done_dialog 0)")
;-----------------------------------------------------------
            (setq Act (start_dialog))
            (unload_dialog dcl_id)
;-----------------------------------------------------------
             			
(princ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun hello ()
  (alert "Hello World")
)

実行したい関数との紐づけは、AutoLISP側から関数 action_tile を利用しても同じ結果になります。

ボタンタイルの記事ではDCL側の属性でアクションを付ける方法と、AutoLISP側の関数でアクションを付ける方法両方紹介しました。

まとめ

  • 画像ボタンタイルは、ボタンとして使える。
  • actionは、ダイアログボックスのタイルにアクションを加えるDCLのタイル属性。
  • そのタイルから実行したい関数名を紐づけする。
  • AutoLISP側で 関数 action_tile を使ってもタイルとアクションを紐づけできる。

Comments