Examples/指定座標へのパン

Last-modified: 2012-10-15 (月) 00:24:10

このコードを実行すると、座標値を入力してOKボタンを押すとウィンドウの表示がその座標値にパンされるフォームが生成される。

(letseq
  (
  (mX
    (hiCreateFloatField ; float型の数字入力フィールドを作成
      ?name 'mX
      ?prompt "X"
      ?value 0.0
      ?editable t
    ) ; hiCreateFloatField
  ) ; mX
  (mY
    (hiCreateFloatField ; float型の数字入力フィールドを作成
      ?name 'mY
      ?prompt "Y"
      ?value 0.0
      ?editable t
    ) ; hiCreateFloatField
  ) ; mY
  (fh
    (hiCreateAppForm ; フォームの作成
      ?name 'moveXY
      ?formTitle "moveXY"
      ?buttonLayout 'OKCancelApply ; OK/Cancel/Applyボタンの配置
      ?fields ; フォームに各種フィールドを配置
        (list
          (list mX   0:8 100:10 20) ; フィールド mX の配置
          (list mY 120:8 100:10 20) ; フィールド mY の配置
        ) ; list
      ?callback
        ; OK、Applyボタンを押したときの動作を文字列として記述。
        ; 文字列ではなく関数を用意してそれを指定してもよい。
        (strcat
          "(hiPan"
          "  (hiGetCurrentWindow)"
          "  (let ((cf (hiGetCurrentForm)))"
          "    (list cf->mX->value cf->mY->value)"
          "  )"
          ")"
        ) ; strcat
    ) ; hiCreateAppForm
  ) ; fh
  )
  ; フォームの表示
  (hiDisplayForm fh)
)