フォーム読み込み中のエラーに関して

解決


イージン  2010-04-05 15:12:46  No: 38169  IP: [192.*.*.*]

Delphi7を使用しています。

「フォーム読み込み中のエラー
  クラスHogeが見つかりません、エラーを無視して続けますか?  
  注意:エラーを無視すると、コンポーネントまたはプロパティを失う場合  があります。」

と出た場合の対応について教えて下さい。

私の対応としては、
[プロジェクト]→[オプション]→[ディレクトリ/条件]の検索パスに
Hogeのクラスが入っているHogeHoge.pasのフォルダを指定しています。

しかし同じようにファイルを開くとフォーム読み込み中のエラーが出てしまいます。
何か他にやらねければいけないことがあるのでしょうか?


よろしくお願いします。

編集 削除
HOta  2010-04-05 17:23:25  No: 38170  IP: [192.*.*.*]

usesの中にHogeHogeが宣言されていないのにHogeのクラスを使っていませんか?

編集 削除
イージン  2010-04-05 17:39:38  No: 38171  IP: [192.*.*.*]

UsesにはHogeHogeの宣言はあります。
というよりパッケージのインストールによってUsesにHogeHogeが入るようにしたのですが、Delphiを閉じて再度立ち上げると、同じエラーコメントがでます。
その後パッケージインストール画面を見ると、先ほど追加したHogeHogeのチェックが外れていました。

また  「Test.MojiのMojiのプロパティがありません」などのエラーも同時に出ます。Testクラスの中身を見るとMojiプロパティは存在するのですが、エラーが出ます。

なにかちゃんとHogeやTestを参照することができていないみたいです。
どのようにすればエラーが出なくなるのかアドバイスいただけますか?

編集 削除
KHE00221  2010-04-05 19:07:26  No: 38172  IP: [192.*.*.*]

デフォルトにしてる?

編集 削除
イージン  2010-04-06 08:51:06  No: 38173  IP: [192.*.*.*]

KHE00221さん

デフォルトにしてるというのは環境のことでしょうか?

とりあえずエラーの原因はパッケージがインストールされてないことでした。
ただ昨日も質問したようにパッケージインストール後再度開くとそのパッケージのチェックが外れていて、エラーがまた出てしまいます。

何度か色々やっているとチェックが外れなくなってエラーが出ないようになります。

どうしたらチェックの状態が保持されるのかがわかりません。

編集 削除
DEKO  2010-04-06 09:12:07  No: 38174  IP: [192.*.*.*]

"今更聞けない Delphi のコト (パッケージ編)" より参照。
http://homepage1.nifty.com/ht_deko/tech027.html

> 旧IDEの場合、無効にされたパッケージの情報は、
> プロジェクトフォルダにある *.dof に保存されます。
> *.dof はIniファイル形式で、無効にされたパッケージが
> [Excluded Packages] セクションに保存されます。

編集 削除
DEKO  2010-04-06 09:17:47  No: 38175  IP: [192.*.*.*]

誤: より参照。
正: より引用。

編集 削除
イージン  2010-04-06 11:46:42  No: 38176  IP: [192.*.*.*]

DEKOさん

情報ありがとうございます。

とりあえずエラーは出なくなったのでこの件に関しては問題なさそうです。
少しこの作業を色々していて疑問に思ったことが出てきました。

[プロジェクト]→[オプション]→[ディレクトリ/条件]
で設定する検索パスと
[ツール]→[環境オプション]→[ライブラリ]
で設定するライブラリパスの違いというか使い分けがよくわかりません。
二つとも同じパスを指定していたらどうなるのでしょうか?
また、検索パスで設定するとコンパイルでエラーを見ない?、
ライブラリで設定するとコンパイル時にエラーを見ているような気がします。
(実際に同じパスを検索パスで指定したものとしなかったものでコンパイルしたらそうなりました)

なぜこういうことがおきるのかさっぱりです。

編集 削除
DEKO  2010-04-06 12:45:04  No: 38177  IP: [192.*.*.*]

その 2 つのダイアログを出した状態で F1 キーを押すと
幸せになれるかもしれません。

編集 削除
イージン  2010-04-07 18:57:08  No: 38178  IP: [192.*.*.*]

DEKOさん

回答ありがとうございます。
検索パスとライブラリに関してはヘルプを見て勉強します。

> パッケージインストール後再度開くとそのパッケージのチェックが外れて
> いて、エラーがまた出てしまいます。

の現象がやはり新たなPCに環境を作ると現象が出ます。
原因がわからないので、その現象が出るたびに試行錯誤で解決しなければいけません…。


> [Excluded Packages] セクションに保存されます。 
とありますが、その保存場所の情報が見れません。
チェックが再度開くと消えてしまう場合と保持される場合の違いがわからないので、解決できない状態にあります。

編集 削除
TS  2010-04-07 19:58:50  No: 38179  IP: [192.*.*.*]

1  [プロジェクト]→[オプション]→[ディレクトリ/条件]
今作っているプログラムのコンパイルとリンクに必要なファイルの場所を指定

2  [ツール]→[環境オプション]→[ライブラリ]
コンポーネントに使用するファイルのあるフォルダーを指定して置く

イージンさんの言われているHogeのクラスが入っているHogeHoge.pasの
フォルダは2で指定。

編集 削除
DEKO  2010-04-07 20:04:18  No: 38180  IP: [192.*.*.*]

Delphi 7 Help より引用
>[デフォルト]チェックボックスは,
> 現在の設定を各新規プロジェクトのデフォルトとして保存します。

# KHE00221 さんの言われている "デフォルト" とはこの事です。

ここにチェックが入っていない場合には、
パッケージ情報はプロジェクト毎に管理されます。

"パッケージのインストール" ダイアログのキャプションは、
"?????.exe のプロジェクトオプション" のようになっているハズです。
このような場合には、"デフォルト" にチェックを入れます。

Delphi を /np 付で起動した場合には
http://homepage1.nifty.com/ht_deko/tech027.html
"パッケージのインストール" ダイアログのキャプションが
"デフォルトプロジェクトオプション" になり "デフォルト" が強制されます。

編集 削除
TS  2010-04-07 20:04:52  No: 38181  IP: [192.*.*.*]

補足
1  私の場合ここには何も指定しません。

2  [ツール]→[環境オプション]→[ライブラリ]→ライブラリバス
    ここにはコンポーネントの数だけ沢山のフォルダーを指定しています。

編集 削除
イージン  2010-04-08 09:58:47  No: 38182  IP: [192.*.*.*]

みなさんありがとうございます。

Boland¥Delphi7¥Hogeフォルダ
に指定したものをずっと使用していたようです。

自分のソースにある
C:¥○○¥Hogeフォルダ
を指定してもだめなんですね。
そういった場合のProjectごとの設定はDefaultを使用するということの理解でよろしいでしょうか?

編集 削除
TS  2010-04-08 10:46:09  No: 38183  IP: [192.*.*.*]

>その 2 つのダイアログを出した状態で F1 キーを押すと
>幸せになれるかもしれません。
幸せになる努力もしましょう、ヘルプは見られましたか、下記の様にあります。

[デフォルト]チェックボックスは,
現在の設定を各新規プロジェクトのデフォルトとして保存します。

つまり、[プロジェクト]→[オプション]→[ディレクトリ/条件]
で現在設定してあるものを次回から使いますよ言う事だと思いますが。
私は使った事が無いので、実際に試してみて下さい。

編集 削除
イージン  2010-04-08 11:38:15  No: 38184  IP: [192.*.*.*]

すいません。
すぐヘルプを見るのを忘れて質問してしまいます。
まずヘルプを見たり調べたりしてから質問するくせつけます。

みなさん、色々とわかり参考になりました。

ありがとうございました。

編集 削除