掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
UNITを追加したら、読み取り違反のエラーが出るようになったのですが?? (ID:49391)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>UNIT3で宣言しているstring型変数1個を消してUNIT1で宣言している変数を使用すること、 >UNIT3のstring型1個、integer型1個をProcedure内で宣言すること、 >これで正常に動くようになりましたが、 そういうことだと思いますよ. でも,この書き方では,この文章を読んでいる人には理解できません. 変数名が書いてありません.宣言の場所も書いてありません. # 優れたプログラマは真似る 他の方のレスの仕方も真似ることです. interface 部 (implementation よりも上) に以下のように定義した変数はグローバルです. 他のユニットからも直接参照できます.Form3 がそうであるように. したがって,この同じ変数名を,別のユニットでこのように定義すると混乱の元となります. var Form3: TForm3; STR:integer; //;string; 以下のように implementation 部以降で定義した変数も,グローバル変数ですが, このユニット内だけ ( implementation 以降だけ) のグローバル変数です. しかし,これも,他のユニットの interface 部で同じ変数名を定義していると, 混乱の原因となります. グローバル変数の変数名には注意が必要です. implementation STR:integer; //;string; Procedure 内で宣言した変数はその Procedure 内だけで有効 (参照可能) です. 同じ変数名のグロバール変数があっても Procedure 内で定義した変数名が優先して使用されます.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.