2つのファイルを統合後の undeclared identifier

解決


yTake  2011-10-05 09:47:50  No: 40986  IP: 192.*.*.*

度々お世話になります。yTakeといいます。

どの様に質問していいかも分かりません。不可思議な状況です。

ソースファイルが3つに分かれていて正常に動作していたプログラムをその内2つを統合し計2つにしたところ、"Undeclared Identifier"メッセージが出てコンパイルすら通らなくなりました。
ソースは正しくコピーペーストしているので、単語の誤りはありません。

因みに、未定義となっているのは、"TBitMap"の"PixelFormat"と"ScanLine"です。不可思議なのは、TBitMapのオブジェクト宣言自体ではエラーになっていないのですが、そのプロパティが参照できない点です。
因みに、HELP等で確認できるプロパティではないプロパティが候補リストに上がっています。

uses節のGraphicsも定義してあります。

Windows XP Professional SP3, DELPHI7です。


この様な質問で内容を分かって頂けたでしょうか?

編集 削除
NAMETAKE  2011-10-05 17:30:10  No: 40987  IP: 192.*.*.*

uses節をそのままコピペしてもらえますか。

編集 削除
D  2011-10-05 17:37:25  No: 40988  IP: 192.*.*.*

>uses節のGraphicsも定義してあります。

  Graphicsの後にWindowsがあるのでは。
WindowsにもTBitmapが宣言されているのでそのあたりの問題ではないかなと。

編集 削除
yTake  2011-10-07 11:31:24  No: 40989  IP: 192.*.*.*

NAMETAKEさん、Dさん
ありがとうございました。
ご推察の通りでした。Uses節の"Graphics"と"Windows"の順を入れ替えたら、直りました。

しかし、これは"Graphics"と"Windows"とで各々TBitMapが宣言されていて且つその宣言内容が異なっていると言う事と思われます。
後の宣言が優先される(上書きされる)イメージです。と言う事は、"Windows"での宣言内容で参照したかった場合は、逆の問題が発生する様な気がします。

すみません。良く理解出来ていません。

編集 削除
au  2011-10-07 13:06:55  No: 40990  IP: 192.*.*.*

そういう場合は、Windows.TBitmapとかGraphics.TBitmapとユニット名まで指定します。
こういう時って定義が曖昧とかってエラーか警告がでてたような気がするんですが記憶違いかな?

編集 削除
yTake  2011-10-07 14:02:58  No: 40991  IP: 192.*.*.*

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

uses節の語順をもとのエラーの出る順序に戻して、変数定義時に、"Graphics.TBitMap"としたら、問題なく実行できました。

ただ、エラー内容は、単に”Undeclared identifier: ”のみでした。



勉強になりました。

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

編集 削除