私の知る限り、コンソールで「プット」を実行するだけなら、この質問をする必要はありません。(しかし、私は何年も訪問してきましたが、最後に私自身、StackOverflow の皆さんに質問します。)
これが私の問題です:
- ユーザーがクリックすると特定の値に「設定」される変数を作成しようとしています
- 次に、変更後にその値を表示しようとしています
- 値を設定できますが、表示されません
(もちろん、Shoes を使用していなければ、これでうまくいくはずです。)
私のコードの関連部分は次のとおりです。
class Inits
# Declares all global vars used
def init1
...
end
def initattrib
@id = "###"
@name = "name undef"
alert("Alert: default attrib set")
end
def id
@id
#alert("Alert: id call")
end
def name
@name
#alert("Alert: name call")
end
def id=(newid)
@id = newid
#alert("Alert: id set")
end
def name=(newname)
@name = newname
#alert("Alert: name set")
end
end
次に、IDを呼び出して次のように設定しようとしています:
Shoes.app :width => 800, :height => 600, :resizable => false do
currclass = Inits.new
currclass.init1
currclass.initattrib
.
.
.
id = "123"
name = "new name"
# I declare something to click here
click { currclass.id = id, currclass.name = name }
# Then I try to display it as so:
para currclass.id
para currclass.name
# But of course the value is not displayed -- just the default value
end
... 余談ですが、クラス変数 (@@x ではなく @x) ではなく、インスタンス変数を使用する必要があると確信しています。
「変更時に更新」できる方法はありますか (「クロックの立ち上がりエッジ」は良い例えです)、またはこれを呼び出す他の方法はありますか?
とにかく、私が正しく行っていないことについてのアドバイスを事前に感謝します。誤解があるのではないでしょうか。