■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#1490-3オブジェクト数の限界Akiue2001-11-13(火) 10:16
     #1494-3RE#1490:オブジェクト数の限界よねKEN2001-11-13(火) 10:51
     #1494-0RE#1490:オブジェクト数の限界よねKEN2001-11-13(火) 19:51
#1490-3
オブジェクト数の限界
今、沢山のピクチャーボックスを使うフォームを作成しています。
現段階で、一つのフォームにピクチャーボックスが640以上存在しています。
しかし、最近システムリソース不足で画面が正しく表示されなくなってきました。
オブジェクトを扱うにあたって、個数の限界とかがあるのでしょうか?
よろしければ、一般的な限界を教えてください。
宜しくお願いします。
開発環境はWIN98SE・VB6です。
#1494-3
RE#1490:オブジェクト数の限界
> 今、沢山のピクチャーボックスを使うフォームを作成しています。
> 現段階で、一つのフォームにピクチャーボックスが640以上存在しています。

かなり多すぎます。
640という数だけでも単純に多いですが、しかもリソースの消費量の多い
PictureBoxがそれだけあれば、動きがあやしくなってきても不思議はありません。

・PictureBoxコントロールの代わりにImageコントロールで代用する
・一つのPictureBoxの中に複数の描画内容を含める
・Pictureオブジェクト(stdPictureオブジェクト)を利用する
・PictureBoxをコンテナとして使っているのであれば、Frameコントロールを利用する
などの代替手段を取りましょう。

その他、表示のためだけにTextBoxを使っているところがあればLabelに代えるとか、
表のような構成のところに表系のコントロールを使用していないなら使用を検討する、
フォームを機能ごとに分けて、一度にはそれらをロードしない、
動的にコントロールをロード/アンロードするなど、
リソース消費を抑える手はいろいろあります。

> しかし、最近システムリソース不足で画面が正しく表示されなくなってきました。
> オブジェクトを扱うにあたって、個数の限界とかがあるのでしょうか?

理論上は、
オブジェクト名が別のコントロールは254個までしか持てません。
コントロール配列にしている場合は、オブジェクト名は254個まで、
各コントロール配列はIntegerの最大値までです。

しかし、実際には9x系はリソースの無制限ではありませんので、
とてもじゃないですが、こんなには使えません。

また、普通は画面構成や使用するコントロールなどを検討して、
無駄なコントロールを排除すれば回避できるはずです。

> よろしければ、一般的な限界を教えてください。

VB6にも付属しているかどうか知りませんが、
VBのサンプルにOptimize.vbpというのがあります。(samples\PGuide\Optimizeの中)
その中にImageコントロールとPictureBoxコントロールをリソースがなくなるまでロード
し続けるサンプルがありますので、一度動かしてみるとよいでしょう。
#1494-0
RE#1490:オブジェクト数の限界
> 今、沢山のピクチャーボックスを使うフォームを作成しています。
> 現段階で、一つのフォームにピクチャーボックスが640以上存在しています。

かなり多すぎます。
640という数だけでも単純に多いですが、しかもリソースの消費量の多い
PictureBoxがそれだけあれば、動きがあやしくなってきても不思議はありません。

・PictureBoxコントロールの代わりにImageコントロールで代用する
・一つのPictureBoxの中に複数の描画内容を含める
・Pictureオブジェクト(stdPictureオブジェクト)を利用する
・PictureBoxをコンテナとして使っているのであれば、Frameコントロールを利用する
などの代替手段を取りましょう。

その他、表示のためだけにTextBoxを使っているところがあればLabelに代えるとか、
表のような構成のところに表系のコントロールを使用していないなら使用を検討する、
フォームを機能ごとに分けて、一度にはそれらをロードしない、
動的にコントロールをロード/アンロードするなど、
リソース消費を抑える手はいろいろあります。

> しかし、最近システムリソース不足で画面が正しく表示されなくなってきました。
> オブジェクトを扱うにあたって、個数の限界とかがあるのでしょうか?

理論上は、
オブジェクト名が別のコントロールは254個までしか持てません。
コントロール配列にしている場合は、オブジェクト名は254個まで、
各コントロール配列はIntegerの最大値までです。

しかし、実際には9x系はリソースの無制限ではありませんので、
とてもじゃないですが、こんなには使えません。

また、普通は画面構成や使用するコントロールなどを検討して、
無駄なコントロールを排除すれば回避できるはずです。

> よろしければ、一般的な限界を教えてください。

VB6にも付属しているかどうか知りませんが、
VBのサンプルにOptimize.vbpというのがあります。(samples\PGuide\Optimizeの中)
その中にImageコントロールとPictureBoxコントロールをリソースがなくなるまでロード
し続けるサンプルがありますので、一度動かしてみるとよいでしょう。
このページと関連する記事:
#1490-0オブジェクト数の限界2001-11-13(火) 19:16
#8586-0リソースに問題あり2000-03-15(水) 17:57
#46606-0リソースを大量に消費2001-09-06(木) 16:42
#20798-0ImageコントロールとPictureBox コントロールの違いについて2001-05-10(木) 10:12
#44003-0コントロールのロード失敗について2001-06-14(木) 05:32
#21357-0ActiveXが重い。2001-06-14(木) 13:46
#23887-0リソース不足2001-10-22(月) 11:31
#12796-0画像のサムネイルの一覧を表示するには?2000-01-07(金) 21:47
#2385-2消費するリソースを軽減2002-08-22(木) 02:32
#552-0メモリ不足になります。2002-04-06(土) 16:56
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)