画面が白抜けになってしまう

解決


バッジョ  2007-05-28 16:04:49  No: 26295  IP: [192.*.*.*]

お世話になります。
Delphi2005 UP3 + SqlServer2005 にて開発を行っています。
クライアントからSQL文を発行してサーバーモジュールにて処理を
おこないデータを取得しているのですが、その間の時間が長いと
クライアントアプリ側のフォーム上のテキストボックスやボタンが
白抜け状態になってしまいます。
回避は出来るのでしょうか?
皆さんのお力をお借りしたくお願いします。

編集 削除
cocomo  2007-05-28 16:53:25  No: 26296  IP: [192.*.*.*]

初心者の私がどうしても表示させたいと思うならば、
TTimerを使ってOnTimerで Self.Refresh; を行うかと思います。
中級者の方であれば直ぐに思いついちゃうと思いますが、一応念のため。

編集 削除
バッジョ  2007-05-28 17:05:46  No: 26297  IP: [192.*.*.*]

cocomoさん、こんにちは。
TTimerでは残念ながら解決できなかったため、こちらに質問させて
頂きました。
こういった現象がWindowsXP のゴーストウィンドウ機能ってことで
しょうか?

編集 削除
バッジョ  2007-05-28 17:11:58  No: 26298  IP: [192.*.*.*]

ちなみに、アプリケーションの互換モードをWindows2000にすれば
解決できるのはわかっているのですが、今回XP風の画面にするため
に(こればかりではないですが)Delphi5から2005に修正している
次第です。

編集 削除
cocomo  2007-05-28 19:14:33  No: 26299  IP: [192.*.*.*]

バッジョさんこんにちは
解決策でなく報告ですが
Delph7 Ent + BDE + Interbase7.1 + WinXP(XPスタイル) Interbase で高負荷をかけた場合 
TTimer,TThread どちらもRefresh反応してくれないですね。
TThreadをもうちょっと改良すればいけそうな気がしますがわかりません。
Delphi2005,2007は持っていますが、環境ができていない為、お役に立てなくてすみません。

編集 削除
かみづ  2007-05-28 19:34:21  No: 26300  IP: [192.*.*.*]

単に長時間ウィンドウメッセージに応答しないため、
「応答無し」状態になってるのではないでしょうか。

そうであればスレッドを立てるか、Application.ProcessMessages
を使うのが普通だと思います。

編集 削除
cocomo  2007-05-28 20:00:45  No: 26301  IP: [192.*.*.*]

TThread、Application.ProcessMessages どちらも難しそうですね。
検索したら
http://d.hatena.ne.jp/Kazzz/200503
[.NET]WindowsXPによるゴーストウインドウを抑制する
というのがありましたがどうでしょう?C言語ですが。
多分もう検索済みだと思いますが。

編集 削除
バッジョ  2007-05-29 08:07:25  No: 26302  IP: [192.*.*.*]

cocomoさん、お世話になります。
”[.NET]WindowsXPによるゴーストウインドウを抑制する”ですが
うまく制御できませんでした。.NETではなくVCLアプリなのでその
関係なのかなと思っています。(ちなみに海外のDELPHIサイトに
pascalでの記述がありました)
かみづさん、お世話になります。
サーバーアプリにSQLやストアドなどを実行させて、結果を待つ間の
ことなのでApplication.ProcessMessagesでは無理でした。

編集 削除
cocomo  2007-05-29 09:37:02  No: 26303  IP: [192.*.*.*]

Delphi2005だったので.NET開発かなと思ってました。
ちょっと難しい問題かもしれないので
http://www.users.gr.jp/content/ml.aspx
でDelphiのMLに参加し、質問してみてはどうでしょう?
こことDelphiMLのマルチポスト気味になってしまいますが。
過去ログを参照したいだけなのであれば
http://www2.big.or.jp/~osamu/Delphi/
が参考になります。

編集 削除
バッジョ  2007-05-29 12:45:07  No: 26304  IP: [192.*.*.*]

cocomoさん、ありがとうございます。
一応こちらでは解決とさせて頂き、MLに参加させて頂いて
再度質問させて頂こうと思います。

編集 削除