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


レッド  2005-05-31 01:00:46  No: 15210

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


deldel  2005-05-31 01:13:11  No: 15211

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


レッド  2005-05-31 01:36:40  No: 15212

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


deldel  2005-05-31 01:59:31  No: 15213

以下のような宣言です。

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


Syake  2005-05-31 02:07:30  No: 15214

ユニット内の記述に以下の内容がありますね
その中の
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-31 02:22:41  No: 15215

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


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

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






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