ページ 12

EditBoxのバグ

Posted: 2006年9月23日(土) 17:32
by 乱馬
こんにちは。
今回は、バグと思われるところを発見しましたので、ここで
報告します。件名の通り、EditBoxのバグなのですが、
AB4.24.00で発見しました。
EditBoxが入っているウィンドウを一旦最小化して、また
表示させると、EditBoxの表示がおかしくなります。
ご確認をお願いします。

Posted: 2006年9月23日(土) 20:14
by konisi
こちらでは発生しないのですが・・・

環境を書いてください。もしかしたらその環境特有の物かもしれないので。


OS:WinXP Home SP2
CPU:PentiumD 3.0GHz
Shell:explorer

Posted: 2006年9月23日(土) 23:50
by 乱馬
言い忘れましたが、RADツールでEditBoxの設定のところで、
「複数行」「水平スクロールバー」「水平オートスクロール」「垂直
スクロールバー」「垂直オートスクロール」それぞれにチェックを
入れてデバッグ実行したら起こりました。
ご確認ください。

Posted: 2006年9月24日(日) 09:20
by konisi
相変わらず発生しません。

再度言います、環境を書いてください。

Posted: 2006年9月24日(日) 11:21
by 乱馬
環境は
Windows XP Home(SP2)
intel celeron 1.80GHz
です。

Posted: 2006年9月25日(月) 01:14
by konisi
AB4.24のみで発生しますか?

AB4.13及びAB3.13等(あるいはAB以外の統合開発環境)でも調べてみてください。
こちらでは発現しないようです。(Celeronの1.8が丁度あったので試しましたが。)

また、具体的にどういう風におかしく表示されるのですか?(再描画されていない、表示される文字がおかしい、等)

Posted: 2006年9月28日(木) 20:46
by 乱馬
4.13で試してみましたが、対応していない部分がおおく、確認できませんでした。
そちらに作成中のソースをお送りしましょうか?

Posted: 2006年9月28日(木) 21:39
by konisi
> そちらに作成中のソースをお送りしましょうか?
・・・それは最終手段と言うことで。

それで、表示が「おかしく」なる と言っていますが、具体的にどんな状況なのですか?

Posted: 2006年9月30日(土) 23:42
by 乱馬
こんばんは。
それで、表示が「おかしく」なる と言っていますが、具体的にどんな状況なのですか?
最小化してから再び表示させるとスクロールバーが表示されなくなります。

Posted: 2006年10月01日(日) 11:50
by M.S.
> こんばんは。
>
それで、表示が「おかしく」なる と言っていますが、具体的にどんな状況なのですか?
> 最小化してから再び表示させるとスクロールバーが表示されなくなります。

この現象は、9x 系でのみなったことがありますが、
XP (SP2, SP1) ではなったことがありません。

9x 系でなったことがあるというより、
9x 系では必ずなります。何度も。

これは、Resize イベントでコーディングされているコントロール全てで、
コントロールの表示が消えます。

Posted: 2006年10月01日(日) 19:43
by 乱馬
こんばんは。
MSさんの報告で新たなことが分かりました。
XPの場合、画面のプロパティで「デザイン」の「ウィンドウとボタン」を
Windows クラシック スタイルにした場合のみこの現象が発生します。
Windows XP スタイルでは、この現象が発生しません。
konisiさんのパソコンでは、おそらくWindows XP スタイルで設定
しているでしょう。konisiさん、Windows クラシック スタイルに設定して、
確認してください。

Posted: 2006年10月01日(日) 22:53
by konisi
Windowsクラシックスタイルにしてみましたがそのような症状は発現しないのでちょっと解らないのですが、クラシックスタイル時に発現して、なおかつXPスタイル時に発現しないのであればそれは実行環境(特にWindowsのスタイル)の問題で、つまりAB側のバグではないと推測しますが、どうでしょうか?

Posted: 2006年10月01日(日) 23:22
by 乱馬
う~ん、どうでしょうね…。まだ実行環境の問題か、ABの問題かどちらかは
決定的な証拠は未だに分からないんですよね。この場合は、管理者に問い
合わせるのが手っ取り早いと思いますが、どうしましょうか。

Posted: 2006年10月03日(火) 18:40
by 乱馬
こんばんは。
M.S.さんのを読んでいて、思い出したことがありました。
>これは、Resize イベントでコーディングされているコントロール全てで、
>コントロールの表示が消えます。
僕の作っていたのもResizeイベントを使っていました。
これらから総括すると、以下のようになります。
・この現象は、Windows 9x系、Windows XP クラシックスタイルで発生
・Resizeイベントを使っていると、発生する(使わなければ発生しない)
・最小化してから再び表示させるとスクロールバーが表示されなくなる
この三つでしょう。
ご確認ください。

Posted: 2006年10月05日(木) 17:43
by 山本
こんにちは。管理人の山本です。対応が遅れてしまい、申し訳ありませんでした。

この問題は、Windowsクラシックスタイルの描画時に起こる可能性があります(AB側のバグではないと考えられます)。

Resizeイベント内でMoveWindow関数やSetWindowPos関数などで子ウィンドウ(ここではエディットボックス)のサイズを変更されていますよね!?
そのときにMoveWindow関数であれば第6パラメータに引き渡す値をTRUEにする、SetWindowPos関数であればSWP_NOREDRAWを指定しないようにするなどのポイントに注意してコーディングしてみてください。