Win98でシステムリソースの消費を減らすには

解決


Taku  2003-01-07 08:12:27  No: 2506  IP: [192.*.*.*]

作成したプログラムをWin98で起動すると、リソースメータの
システムリソースを30%も消費してしまいます
Formの自動作成対象を減らしても殆んど変わりません。
コンポーネント、配列変数、レコード変数など含まれている中から
効果的に減らす方法があれば、お願いします

編集    削除
にしの  2003-01-07 09:16:37  No: 2507  IP: [192.*.*.*]

プロジェクトを見ないと何ともいえません。
# 見ても、今はNT系の環境しかないので試せませんが…

VCLを使わずに作れば、かなり小さく収まると思います。
http://halbow.cool.ne.jp/
このサイトが便利です。
VCLを1つでも使うのであれば、劇的に小さくなることはありません。「すべての」VCLを手書きに変えないと意味がないので。

VCLをすべて排除するのは難しいと思いますので、ちょっとした箇所での解消法を。
まず、配列よりもボタンなどのコンポーネントの数を減らした方がよいです。
ボタンは、TGraphicControlを継承しているTSpeedButtonなどに変えるなどすると違うかもしれません。
また、内部でウィンドウハンドルを持たせているような変数も、できるだけ減らした方がよいです。
自前でボタンを作成しても、結局はハンドルを持つことになります。自前でコンポーネントを作成するより、ウィンドウハンドルを如何に少なくするか、に注目しましょう。

編集    削除
Taku  2003-01-07 10:02:08  No: 2508  IP: [192.*.*.*]

にしのさま  本年もお世話になります

VCLを使わない方法は、やはり考えられません。
ボタンの大半はTSpeedButtonを使用していますが
その他、使用しているコンポーネントの絶対数はかなり多いので、
一番の原因はそのためなのでしょうね

レスを参考に少し検討してみます
有難うございました

編集    削除
たかみちえ  URL  2003-01-08 00:48:07  No: 2509  IP: [192.*.*.*]

あ、複数のボタン並べるのなら、
DelphianWorldのManyBtnなどを使って、
全部ひとつで済ませてしまったほうがいいと思います。

  これでは全ボタンに文字しか表示できないし、表現力はかなり落ちてしまいますけど、
どうしてもというのなら、同じ要領でコンポーネントを作ったり、継承コンポーネントを作って、
それを使うというのもありでしょう。
  いくらデバイスコンテキストでも、使わないに越したことはないと思うので(^^ゞ

  いくつかのボタンをメニューにまとめてしまっても、楽になるかもしれませんね。

編集    削除
Taku  2003-01-09 17:35:02  No: 2510  IP: [192.*.*.*]

たかみさん  遅くなってしまいましたがレス有難うございます

基本的に操作性の良いインターフェースが売りのソフトなので
アイコンボタンとかチェックボックスとかが、数え切れないほど有ります

色を設定するカラーパレットに、Shapeを色数分並べてあるので起動時にCanvasに色を描くとか
PageControl内のコンポーネントをTabControlで共有するとか
数が多い分、ダイエットできる個所も沢山見つかりました。
オブジェクトをフォームに追加するだけで出来てしまうのをプログラムでカバーするのは
面倒ですが、簡単なところから始めてみます。

編集    削除