いまごろ Windows98 でもないと思いますが・・・・・。
通常は Delphi5+WindowsXP で使用していますが、たまに Delphi5+Windows98 でも使います。
TMemo や TRichEdit を貼り付けて(Align := alClient )文字列を表示させた場合、Delphi5+WindowsXP でコンパイルしたものはフォームをリサイズすると文字列がちらつきます。もちろん
Memo1.DoubleBuffered := True;
でちらつきはなくなりますが、Delphi5+Windows98 の場合はこんなことをしてもちらつきません。というか Windows98 の場合は実際にはフォームの大きさが確定するまではフォーム自体(当然 Memo1 も)、ドラッグ中はリサイズしないような動きです。
単に DoubleBuffered の使用は避けるのなら
https://www.petitmonte.com/bbs/answers?question_id=2685
あたりを参考にすればよいのでしょうが、XP でもフォームをリサイズする際に 98 と同じような動きにする方法はないのでしょうか?
たとえば TSplitter のように
ResizeStyle := rsPattern (コントロールのサイズは変更されないので、ちらつかない)
ResizeStyle := rsUpdate (コントロールのサイズが変更されるので、ちらつく)
プロパティの変更一発で簡単にできる方法です(^O^;)。TForm にそれらしきものがないか見つけているのですが・・・・・。
> Windows98 の場合は実際にはフォームの大きさが確定するまではフォーム自体(当然 Memo1 も)、
> ドラッグ中はリサイズしないような動きです。
> XP でもフォームをリサイズする際に 98 と同じような動きにする方法はないのでしょうか?
はずしているかもしれませんが、
コントロール パネル − 画面
「画面のプロパティ」:「デザイン」タブ −「効果」ボタン
「ドラッグ中にウィンドウの内容を表示する」
のチェックをはずすのは、どうですか?
> 「ドラッグ中にウィンドウの内容を表示する」
> のチェックをはずすのは、どうですか?
これでいけました。ありがとうございます。
それにしてもXPはなぜこれをデフォにしてないんでしょうかねえ。フォームのリサイズのドラッグ中、必ず表示されるコントロールをリアルタイムにリサイズしないと都合の悪いソフトがあるんでしょうか?
>必ず表示されるコントロールをリアルタイムにリサイズしないと都合の悪いソフトがあるんでしょうか?
都合がいい悪いというよりは、マシンパワーが十分なら
リアルタイムに追従してくれた方が一般的には使い勝手がいいということでしょう。
例えばある表示内容がぴったり収まるようなサイズにリサイズしたいといった場合
リサイズ完了するまで結果がわからないと、何度もトライアル&エラーが必要ですよね。
ちなみにTCustomGridはデフォルトでThumbTrackingオプションがオフですが、
つまみをドラッグしてもリアルタイムにスクロールしないのは
現代の基準からするとやはり不便だと思われるのではないでしょうか?
それこそ、一般ユーザーの嗜好性でしょう。
プログラムの効率化よりユーザーの嗜好性を重視してプログラムが
進化していくのは当然の流れだと思います。
プログラマはその嗜好性に併合してリサイズ中にもちらつかなくなるべく
高速に動作するアプリケーションを作るべきだと思います。
その分、余計な機能に高いスキルが要求されますが、
私は仕方のないことだと割り切ってます。
> それこそ、一般ユーザーの嗜好性でしょう。
そういうことでなんでしょうねえ。私自身はユーザーとしてはリアルタイムにサイズが変更されなく
てもいっこうに困りません。むしろ、ちらつく方がユーザーとしてもプログラマーとしてもとても気に
なります。
> プログラマはその嗜好性に併合してリサイズ中にもちらつかなくなるべく
> 高速に動作するアプリケーションを作るべきだと思います。
私自身は人様に公開するようなソフトを作る能力はないですが、ユーザーとして使用しているソフト
をみるとなかなかおもしろいです。商用のソフトや全国区レベルの人気を誇るフリーウェアは、さすが
にちらつき防止はきちんとしていますが、マイナーなフリーウェア(でも個人的には大変役に立ってい
る)は、けっこう派手にちらつくのがあったりします(^O^;)。テキストのちらつきはなくても、画像や
ツールバーのボタンがちらついたりとか・・・・。そのうちDelphiで作られたソフトではTPageControlがち
らつくのが2つありました。
ツイート | ![]() |