日本語プログラミング言語なでしこの公式掲示板

なでしこ3 質問

トップ 新規 検索

2024-07-13 12:42:00

Re①:ボタンの一括作成で、「対象」でテキスト取得できない

TKI さん

すみません。
どなたかお知恵を貸してください。
下記のプログラムを書いています。
このプログラムは、ボタンを押すとちゃんと押されたテキストが表示されます。

右のコメントに入れた「対象のテキスト取得」で

[警告]main(325行目): 命令『テキスト取得』の引数にundefinedを渡しています。

というエラーになってしまいます。
このボタン作成と取得部分は何も変えていませんが、何科の条件で「対象」に入っていないのだと思います。
どのようなことが想定されるのかヒントがあると助かります。


作業テーブル = [10,20,30,40,50,60]
「スタートします」のラベル作成
改行作成

作業スタート

●作業スタート
ボタン一覧 = []

作業テーブルを反復
I = 対象キー
K = 対象
  ボタン一覧[I] = Kのボタン作成
改行作成
  ボタン一覧[I]をクリックした時には
作業私=対象のテキスト取得。 #別なプログラムに移植するとエラーとなる

作業私を表示
ここまで #ボタン

ここまで #反復

ここまで #関数



「ボタン一覧[I]をクリックした時には」の次の行では「対象」はクリックしたボタンを指しています。
その行と「作業私=対象のテキスト取得。」の間で「対象」が変わっているのだと思います。

ボタン一覧[I]をクリックした時には //←対象にボタン一覧[I]が代入される
  //
  //移植先のプログラムではここに対象が変わるプログラムが書いてある
  //
  作業私=対象のテキスト取得。
  

なでしこ3ではなでしこ1よりも対象が変わりやすくなっています
対象が変わる例は
 ・「切り取る」命令
 ・反復
 ・ユーザー定義関数(関数のなかで変更されていることがある)
 ・秒待つ(待っている間に別の関数が処理されることがある)


対策は、対象が変わる前にローカル変数に代入しておくことです。

ボタン一覧[I]をクリックした時には
  対象ボタン=対象  //←ローカル変数に入れておく
  //
  //移植先のプログラムではここに対象が変わるプログラムが書いてある
  //
  作業私=対象ボタンのテキスト取得。 //←ローカル変数のほうからテキスト取得


(編集パスワード送信)

子記事

親記事 (No.1947)
返信した記事(元) (No.1947)

この内容(No.1949)に返信

この内容(No.1949)をダウンロード

この内容(No.1949)のテキスト表示





www.eznavi.net