PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
22722 06/07/25 21:17:10 RE(4):PB9.0: 画面の再描画について By カズ2002
22712 06/07/24 11:16:03 RE(3):PB9.0: 画面の再描画について By カズ2002
22710 06/07/24 10:57:44 RE(2):PB9.0: 画面の再描画について By カズ2002
22709 06/07/24 10:48:21 RE(1):PB9.0: 画面の再描画について By Valkyrie
22707 06/07/24 10:26:13 PB9.0: 画面の再描画について By カズ2002

カテゴリ:スクリプトの記述
日付:2006年07月24日 10:26 発信者:カズ2002
題名:PB9.0: 画面の再描画について

画面の再描画で困っております。

あるボタンを押した後にレスポンスウィンドウを開き、そのOpenイベントの中で
ループ処理をさせているのですが、ループ10件単位で画面のスタティックテキスト
カウンタ表示として値をセットしています。
そこで困ったことに、ウィンドウがフォーカスを失ったり(別のアプリ等を開いたりして)、
そのウィンドウをクリックしたりすると画面描画が止まり応答なし状態になってしまいます。
処理は確実に動いているのですが、見た目上固まった感じに見えてよろしくありません。

カウンタセットのタイミングでWindowのRedrawや、スタティックテキストのRedraw、
画面のShow()関数、またはメッセージのYield()関数など、実行タイミング等も色々
変えて試してみてるのですが、どうもうまく行きません。

 for l_row = 1 to dw_csv.rowcount()
  if mod(l_row,10) = 0 then
   st_current.text = string(l_row)
   this.show()
   setredraw(true)
   st_current.setredraw(true)
   Yield()
  end if

  // 重い処理
  // ・
  // ・
  // ・
 next

過去ログを検索して目ぼしい事は大抵試してみたのですがだめでした。
画面の再描画を確実にさせる良い方法を知っておられましたら教えて頂けないで
しょうか?

OS:Windows XP Pro SP2
PB:9.0.1 Build 6533J
DB:Oracle 10.2


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows XP
DBMS Oracle Net 10
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.