似たような質問かもしれませんが・・・


レッド  2005-05-30 16:00:46  No: 15210  IP: 192.*.*.*

例えばForm1でXという変数に4桁の数字が入っていて、Form2でもYという変数に4桁の数字が入っています。Form2上でXとYを比較してもし同じなら・・・というもの作る時Form2でXを宣言するとそれはForm1のXとして認識してくれるのですか?

編集 削除
deldel  2005-05-30 16:13:11  No: 15211  IP: 192.*.*.*

認識してくれません。
Form2でXを宣言せずに、Form1.Xを使用して下さい。
但し、XはPublic宣言です。
さらに、unit2に、uses unit1;が要ります。

編集 削除
レッド  2005-05-30 16:36:40  No: 15212  IP: 192.*.*.*

返事ありがとうございます。とてもわかりやすいです。
XをPublic宣言というのがわからないのですが、すみません、教えてくれませんか?

編集 削除
deldel  2005-05-30 16:59:31  No: 15213  IP: 192.*.*.*

以下のような宣言です。

  TForm1 = class(TForm)
  private
    { Private 宣言 }
  public
    { Public 宣言 }
    X: integer;
  end;

編集 削除
Syake  2005-05-30 17:07:30  No: 15214  IP: 192.*.*.*

ユニット内の記述に以下の内容がありますね
その中の
Type
  TForm1 = Class(From)
    ・・・・
  Private
  {Private宣言}

  Public
  {Public宣言}
    //この位置です。

 end;

Publicに宣言した変数・関数・手続きは他のユニットでも参照又は使用できます。
(もっとも、deldelさんがいわれるようにusesしないと駄目ですけど)
privateやimplementation 以下に記述した変数などは参照できません。

しかし、
Type
  TForm1 = Class(From)
    ・・・・
  Private
  {Private宣言}
  Public
  {Public宣言}
 end;
var
  Form1:TForm1;
    //ここに宣言
implementation

しても、使えますが多分誰も推奨しないでしょう。

編集 削除
レッド  2005-05-30 17:22:41  No: 15215  IP: 192.*.*.*

deldelさんありがとうございます。無事できました。

編集 削除