記: GUIエンジンであるTcl/Tk側には特に制限が無くても、Mind側でID管理や変数管理のため制限が生じるものがあります。もしGUIエンジン(Tcl/Tk)特有の制限が見つかりましたら、現状が仕様であるとしてご利用願います。
記: 下記に記載があるものは明確に制限が分かっているものであり、記載が無いからといって無制限に使えるわけではありません。メモリ消費が極端に大きくなったり、性能が落ちたり、動作が不安定になる、あるいはGUIエンジン(Tcl/Tk)の隠された仕様などの理由で極端に大きな数を使えないことがあることをご承知願います。
| 項目 | 値 | 補足 |
| ウィジェット最大数 (テキストタグを含む) | 511個 | ウィジェットの削除でリサイクルされる。 配置IDは「配置」の実行で自動解放される。 メニューは起点のみウィジェット扱いで配下の項目はウィジェットではない。 図形と図形タグはキャンバスがウィジェット扱いで配下の図形または図形タグはウィジェットではない。 テキストタグは1ウィジェットとしてカウントする。 |
| 座標XまたはYの絶対値の最大 | 16000 | 縦横で区別はしない。座標は負の値も有効。 |
| イベント引数長さ | 50桁 | イベント処理単語に渡す「イベント引数」の全長(引数群の文字列長の総和) |
| 登録フォント最大数 | 50個 | 「フォントマクロを登録」の最大数 |
| 登録フォント名長さ | 40桁 | |
| 短形式フォント情報長さ | 80桁 | |
| フォント情報長さ | 80桁 | |
| 長形式フォント情報長さ | 120桁 | |
| フォントサイズ下限 | 3 | |
| フォントサイズ上限 | 100 | |
| 複数のIDの配列要素数 | 100個 | 「複数のIDを配列に格納」「配列から複数のIDを取り出し」で使う |
| メニュー起点最大数 | 25個 | 1プログラムで使えるメニュー起点数。メニューバーで1つ、サブメニューで1つ として数える |
| メニュー起点毎のメニュー項目数最大 | 30個 | メニュー起点毎の項目数上限 |
| テキストを設定の文字列長さ | 8192桁 | |
| テキストを参照時の長さ | 8192桁 | 「テキストを参照」、「クリップボードを参照」、「指定範囲のテキストを参照」で使うデフォルトの文字列実体長さ |
| エントリー最大桁数 | 200桁 | 「エントリーのIDを取得」、「入力文字列を参照」および「ダイアログの先行入力文字列を設定」で扱う入力域最大桁 |
| 計算式を評価戻値長さ | 100桁 | 「計算式を評価」が返せる最大桁数 |
| 拡大率の最大値 | 10000 | 「イメージを拡大」に与える最大値 |
| グループ名長さ | 80桁 | チェックボタンとラジオボタンのグループ名最大桁 |
| チェックボタン項目名長さ | 80桁 | |
| ラジオボタン項目名長さ | 80桁 | |
| ラジオボタン値長さ | 40桁 | |
| 字下げ量最大値 | 300 | 「テキスト字下げを設定」に与える最大値 |
| 座標配置での小数点以下有効桁 | 4桁 | 「ウィジェットの位置を設定」および、座標配置での「ウィジェットの高さを設定」「ウィジェットの幅を設定」での小数点以下有効桁数 |
| 選択結果取得長さ | 4000桁 | リストボックスの選択結果取得時のデフォルトの文字列実体長さ |
| 標準ダイアログの戻値長さ | 5200桁 | 「標準ダイアログを開く」の戻値のデフォルトの文字列実体変数長さ |
| 図形ID最大数 | 134217727(約1.3億) *注1 | 1キャンバス当たり図形生成の最大。図形削除もリサイクルされず、図形タグも1カウント、「キャンバスをクリア」でリセット。 |
| 図形の仮IDの個数 | 7個 | 図形のIDを取得から描画前までの未確定状態にある図形の最大数。描画はせずにID取得だけを繰り返したり、属性設定をしたあと「描画」または「変更を反映」をせずに次々と他の図形の属性設定に移る・・などのケースでこの制限にかかります。 |
| 多角形または折れ線を描く時の座標数 | 100座標 | XとYの1組で1座標 |
| 「図形の座標を得る」が返せる座標数 | 100座標 | XとYの1組で1座標 |
| 「座標ペア群を文字列化」の生成文字列最大 | 1024桁 | |
| 図形検出時に使う識別コード | 1〜4 |
- 注1
- 通常はこの図形数で問題無いはずですが、フラクタル図形の描画など頻度の高い描画を長時間実行するプログラムでは到達する可能性もあり得ます。
また、この上限値よりも少ない描画数であっても、速度低下などにより実用上問題が生じる可能性もあります。
このような用途ではユーザ側で上限数を管理するなど対応をお願いします。