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

解決


yTake  2011-10-05 18:47:50  No: 40986

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

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

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

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

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

Windows XP Professional SP3, DELPHI7です。

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


NAMETAKE  2011-10-06 02:30:10  No: 40987

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


D  2011-10-06 02:37:25  No: 40988

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

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


yTake  2011-10-07 20:31:24  No: 40989

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

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

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


au  2011-10-07 22:06:55  No: 40990

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


yTake  2011-10-07 23:02:58  No: 40991

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

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

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

勉強になりました。

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加