ツリー一括表示

Nomal 動的生成部品について /john (14/01/06(Mon) 13:48) [#6500]
Nomal 作成時にPを保存 /のなお (14/01/06(Mon) 16:05) [#6501]
  └Nomal Re[2]: 作成時にPを保存 /john (14/01/07(Tue) 00:37) [#6502] 解決済み!


親記事 / ▼[ 6501 ]
/ 親階層)  動的生成部品について
□投稿者/ john 【115.163.108.180】(2014/01/06(Mon) 13:48:33)

    30回
     BROWSER[P]をブラウザとして作成
    必要の間
     BROWSER[P}→文書完了した時は〜
      H[P]=BROWSER[P}→テキスト

    Pは数秒枚に変わる30以内の変数です。
    文書が完了した時にH[P]に入るテキストは「文書完了した時は〜」設定時のPではなく、最新のPが適用されたBROWSER[P]のテキストが代入されてしまいます。
    何とかして実際に文書完了した時に、「文書完了した時は〜」設定時のPのBROWSERのテキストを、設定時のPのHに代入したいのですがどうすればよいでしょうか。
[ □ Tree ] 返信 削除キー/
[ □ Tree ] 返信

▲[ 6500 ] / ▼[ 6502 ]
/ 1階層)  作成時にPを保存
□投稿者/ のなお 【110.4.172.148】(2014/01/06(Mon) 16:05:11)

    こんにちは。

    >   H[P]=BROWSER[P}→テキスト
    ブラウザを作成した時点のPの中身を保存してPの代わりに使う必要があります。
    部品IDは一意なので、このIDを配列番号として利用するのが手っ取り早いと思います。
    取り出す時は、「自身」や「イベント部品」で取り出せます。

    例:配列 (※NUMは配列変数です)
     BROWSER[P]をブラウザとして作成
     NUM[BROWSER[P]→ID]=P #★部品IDを配列番号として使用
     BROWSER[P]→文書完了した時は〜
      PN=NUM[自身→ID] #NUM[イベント部品→ID]でも可
      H[PN]=自身→テキスト

    他にハッシュやブラウザ部品のタグ等にPを保存する方法もあります。

    例:ハッシュ (※NUMはハッシュ配列変数です)
     BROWSER[P]をブラウザとして作成
     NUM@「{BROWSER[P]→ID}」=P #★部品IDをハッシュキーとして使用
     BROWSER[P]→文書完了した時は〜
      PN=NUM@「{自身→ID}」 #ブラウザ作成時点のPを取り出し
      H[PN]=自身→テキスト

    例:部品のタグ
     BROWSER[P]をブラウザとして作成
     BROWSER[P]→タグ=P #★部品のタグを使用(ポケットもあります)
     BROWSER[P]→文書完了した時は〜
      PN=自身→タグ #ブラウザ作成時点のPを取り出し
      H[PN]=自身→テキスト

    > 必要の間
    これの意味が分かりませんでした。
    イベントは自動的にイベント発生しますので必要ないです。
    勘違いでしたらごめんなさい。
    ご参考まで。


    No6500に返信(johnさんの記事)
    > 30回
    >  BROWSER[P]をブラウザとして作成
    > 必要の間
    >  BROWSER[P]→文書完了した時は〜
    >   H[P]=BROWSER[P]→テキスト
    >
    > Pは数秒枚に変わる30以内の変数です。
    > 文書が完了した時にH[P]に入るテキストは「文書完了した時は〜」設定時のPではなく、最新のPが適用されたBROWSER[P]のテキストが代入されてしまいます。
    > 何とかして実際に文書完了した時に、「文書完了した時は〜」設定時のPのBROWSERのテキストを、設定時のPのHに代入したいのですがどうすればよいでしょうか。

    *(2014/01/06(Mon) 16:15:23 編集[投稿者])
[ 親 6500 / □ Tree ] 返信 削除キー/
[ 親 6500 / □ Tree ] 返信

▲[ 6501 ] / 返信無し
/ 2階層)  Re[2]: 作成時にPを保存
□投稿者/ john 【120.74.157.199】(2014/01/07(Tue) 00:37:48)

    のなおさんこんばんは。

    ご回答頂きありがとうございます。
    しばらくの間頂いた回答の内容について調べたり自分が書いたコートに組み込むので四苦八苦しておりました。
    ブラウザを一意で認識できないかとは考えていたのですが、IDというものをさらに配列で使うんですね。
    なるほどこれなら部品のイベントが時差で発生した場合でも設定時の変数で対応できます。
    頂いたアドバイスを元にコードを書き上げ元気よくプログラムが動作しています。
    ちなみに「必要の間」は私が勝手に無限ループのつもりで、空きブラウザチェックなどに使っているもので、質問文には関係が無いものでした。
    困惑させてしまい大変申し訳ありませんでした。
    ずっと動的生成部品=配列で管理と考えていて、文書完了時に変数が常に新しい値を適用する問題は、とても頭を悩ませていましたので、例文付きの丁寧な回答で凄く助かりました。
    本当にありがとうございました。
解決済み!
[ 親 6500 / □ Tree ] 返信 削除キー/
[ 親 6500 / □ Tree ] 返信


Pass/

BBS CGI RSS CGI
Child Tree RSS/SPAM対応版