アプリ版:「スタンプのみでお礼する」機能のリリースについて

for i=1 to 1000
T.text=str(i)
next i
とやっても、テキストにiの進度状況は書き込まれません。
いったんSubを呼び出すかまたはタイマーを仕掛けて外に出て元の場所に戻るとiは書き込まれますが、doやforのループでは、そのような中断が許されません。
やむを得ず、gotoを使ったループからいったん外に出る方法で、何とか表示を可能にしています。
もっとスマートな方法があったら教えてください。

A 回答 (3件)

textプロパティ設定後、Text1.Refreshを行えば良いです。


DoEventsでも解決しますが、DoEventsはイベントの順序が変化し、問題が発生する場合があります。
例えば、ボタンクリックで処理中、他のボタンをクリックしても、最初の処理が終わるまで次のボタンの処理は行われません。最初のボタンの処理中にDoEventsが発行されると、それまでのイベントが処理されるようになります。DoEventsを使用する場合、DoEventsが何をするのかをきちんと理解することが重要です。
    • good
    • 0
この回答へのお礼

ありがとうございました。DoEventsステートメントもRefreshメソッドもうまく働きました。
これまでに作ったプログラムがスパゲッティに見えます。
理屈はまったく分かりませんが、両方OKであれば、Refreshのほうが「本来の使い方」に近いように思われます。

お礼日時:2006/07/21 20:28

自信なし



for i=1 to 1000
T.text=str(i)
DoEvents
next i

かも
    • good
    • 0
この回答へのお礼

ありがとうございました。DoEventsステートメントもRefreshメソッドもうまく働きました。
これまでに作ったプログラムがスパゲッティに見えます。
理屈はまったく分かりませんが、両方OKであれば、Refreshのほうが「本来の使い方」に近いように思われます。

お礼日時:2006/07/21 20:27

テキストボックスの T にループ中は何も表示されないということですよね?



ループの中に DoEvent(DoEventsだったかも…) を入れれば解決します。
    • good
    • 0
この回答へのお礼

ありがとうございました。DoEventsステートメントもRefreshメソッドもうまく働きました。
これまでに作ったプログラムがスパゲッティに見えます。
理屈はまったく分かりませんが、両方OKであれば、Refreshのほうが「本来の使い方」に近いように思われます。

お礼日時:2006/07/21 20:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!