« C4D C.O.F.F.E.E.でポリゴンの座標を算出する関数について、考えてみる | トップページ | C4D 新たに、ポリゴンオブジェクトを一体化するスクリプトを作ってみよう。 »

C4D テキストダイアログ

テキストダイアログを自ら使った事は無いんだよね。
まだまだC.O.F.F.E.E.の使い込みが甘いのか…

処理の失敗のメッセージやメモリの確保の失敗をコンソールに表示させるのではなく、こんな風にテキストダイアログに表示させれば良いんだね。

Textdialog_12

でも、一々OKボタンを押させられるのは、鬱陶しくないですか?

例えば、選択されたオブジェクトに何か処理するスクリプトで、オブジェクトを選択しないで実行したら「オブジェクトが選択されていません」「OK」なんて出てきたら…

ま、その前にメニューの状態で弾かれる様にしないとね。

このテキストダイアログを使うにも、センスが問われそうですね。

アイコンフラグ

Textdialog_01 DLG_ICONSTOP 警告
Textdialog_02 DLG_ICONQUESTION 問い合わせ
Textdialog_03 DLG_ICONEXCLAMATION 注意
Textdialog_04 DLG_ICONASTERISK 情報

ボタンフラグ

Textdialog_05 DLG_OK
Textdialog_06 DLG_OKCANCEL
Textdialog_07 DLG_ABORTRETRYIGNORE
Textdialog_08 DLG_YESNOCANCEL
Textdialog_09 DLG_YESNO
Textdialog_10 DLG_RETRYCANCEL

結果(クリックされたボタン)

OK DLG_R_OK
キャンセル DLG_R_CANCEL
中止 DLG_R_ABORT
再試行 DLG_R_RETRY
無視 DLG_R_IGNORE
はい DLG_R_YES
いいえ DLG_R_NO

ダイアログレイアウトは、こんな感じだね。

Textdialog_11

どう使うんだい?

結果 = TextDialog([string] text , ボタンフラグ + アイコンフラグ);

簡単だね。

試しに、テキストダイアログのみ表示させてみた。

/*
テキストダイアログを表示させてみる。
2009.6.1
*/



//結果をコンソールに表示
WhatClick(res)
{
  switch(res){
    case DLG_R_OK://OKがクリックされた
      println("Ok");
      break;
    case DLG_R_CANCEL://キャンセルがクリックされた
      println("Cancel");
      break;
    case DLG_R_ABORT://中止がクリックされた
      println("Abort");
      break;
    case DLG_R_RETRY://再試行がクリックされた
      println("Retry");
      break;
    case DLG_R_IGNORE://無視がクリックされた
      println("Ignore");
      break;
    case DLG_R_YES://はいがクリックされた
      println("Yes");
      break;
    case DLG_R_NO://いいえがクリックされた
      println("No");
  }
}

main(doc , op)
{
  var res;

  res = TextDialog("「OK」押す?" , DLG_OK + DLG_ICONSTOP);
  WhatClick(res);

  res = TextDialog("「OK」?それとも「キャンセル」?" , DLG_OKCANCEL + DLG_ICONQUESTION);
  WhatClick(res);

  res = TextDialog("「中止」?「再試行」?それとも「無視」?" , DLG_ABORTRETRYIGNORE + DLG_ICONEXCLAMATION);
  WhatClick(res);

  res = TextDialog("「はい」?「いいえ」?それとも「キャンセル」?" , DLG_YESNOCANCEL + DLG_ICONASTERISK);
  WhatClick(res);

  res = TextDialog("アイコンは無いよ。「はい」?それとも「いいえ」?" , DLG_YESNO);
  WhatClick(res);

  res = TextDialog("ここもアイコンは無いよ。「再試行」?それとも「キャンセル」?" , DLG_RETRYCANCEL);
  WhatClick(res);
}

|

« C4D C.O.F.F.E.E.でポリゴンの座標を算出する関数について、考えてみる | トップページ | C4D 新たに、ポリゴンオブジェクトを一体化するスクリプトを作ってみよう。 »