「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@509) [中] [解決]
@509■ (#1592) 動的生成した部品で「イベント部品」が正常に動かない時がある - na (2010-04-26 19:52) /中 未処理
【症状】動的生成した部品で「イベント部品」が正常に動かない時がある
【再現方法】
//ソース ここから
変更中=オフ

2回
  テストバー[回数-1]をバーとして作成
  テストバー[回数-1]→最小値=0
  テストバー[回数-1]→最大値=100
  テストバー[回数-1]→ポケット=回数-1
  テストバー[回数-1]→変更した時は~
    もし変更中=オフならば
      テストバー変更(イベント部品→ポケット)
  テストエディタ[回数-1]をエディタとして作成
  テストエディタ[回数-1]→ポケット=回数-1
  テストエディタ[回数-1]→テキスト=50
  //テストエディタ変更(回数-1)  //ここのコメントを解除するとバグ発生
  テストエディタ[回数-1]→変更した時は~
    もし変更中=オフならば
      テストエディタ変更(イベント部品→ポケット)

●テストバー変更(ID)
  変更中=オン
  テストエディタ[ID]=テストバー[ID]→値
  変更中=オフ
●テストエディタ変更(ID)
  変更中=オン
  I=テストエディタ[ID]→テキストを実数変換
  もしI<0ならばI=0
  もしI>100ならばI=100
  テストバー[ID]=I
  変更中=オフ
//ここまで
・ソースの説明
本来はもっと長いのですが、バグが発生するところだけを書いています。

バーとエディタが連動するようなものを動的生成しています
イベントの中を関数にしているのは、そうしないと本来のソースの場合にソースが冗長になるからです。

・バグの内容
テストエディタ[回数-1]→テキスト=50でデフォルト値50を設定し、それをテストエディタ変更で反映した場合
バーやエディタをいじると「イベント部品はグループではありません。」というエラーが出る。

【要望】正常に動くように
【バージョン】1.5328
【その他】

(#1629) 詳しく調べました。 - na (2010-06-02 17:26) /中 未処理
詳しく調べた結果2つのバグが見つかりました。
1.プログラム側からイベントが起こると「イベント部品」が正常に動かない。
//
テストバーとはバー
テストバーの変更した時は~
  イベント部品→値を言う

テストバーの値=50
//
こうした時に「イベント部品はグループではありません。」というエラーが出る。
バグではなく仕様のような気もしますが・・・

2.上記のバグを回避しようとプログラム側からイベントを起こす場合は「イベント部品」を使用しないようにしても、「イベント部品はグループではありません。」というエラーが出る。
//
テストバーとはバー
テストバーのポケット=「テスト」
テストバーの変更した時は~
  もしA=オフならば
    イベント部品→値を言う

A=オン
テストバー=50
A=オフ
//
バーを手動で変更すると「イベント部品はグループではありません。」というエラーが出る。

お忙しいと思いますが、どちらかだけでいいので修正していただけないでしょうか。

(#1631) イベント部品を自身でしのぐ? - のなお (2010-06-03 19:05) /中 未処理
最初の#1592の症状については私には分かりませんが、症状が直るまでの回避策として

「イベント部品」を「自身」で試してみてはいかがでしょうか?

なでしこリファレンス-作成: http://nadesi.com/man/page/%E4%BD%9C%E6%88%90
なでしこリファレンス-自身: http://nadesi.com/man/page/%E8%87%AA%E8%BA%AB
なでしこリファレンス-イベント部品: http://nadesi.com/man/page/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E9%83%A8%E5%93%81

私は動的作成した場合は「イベント部品」より「自身」をよく使います。
作成で作ったので自身のほうが分類が同じクループ系で親和性が高いのでないかと思います。自信なし(笑

一度試してみてくださいw
ご参考まで。


(#1632) 解決しました - na (2010-06-04 17:24) /中 解決
解決しました。
グループの外に書いているので自身は使えないと思っていました。
ありがとうございました。

(#1592)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能