質問いたします。
フォームを二つ準備するとして、
一つ目のフォームに整数型の変数iを準備したとします。
で、一つ目のフォーム上でiの変数を変更可能とします。
まぁ、例えばiを1にしたり、2にしたり…。
で、二つ目のフォームでcase文を用いたいのですが、
そのときに
case i of
1: ...
2: ...
3: ...
のようなことをしたいのですが、勿論iは一つ目のフォーム上で宣言されたものなのでうまくいきません。
何か良い方法はあるでしょうか?
まず、1つめのフォームで以下のように変数宣言します。
type
TForm1 = class(TForm)
....................................
....................................
private
{ Private 宣言 }
public
{ Public 宣言 }
i : Integer; // ←ここで宣言する
end;
次に参照したい別フォームでファイルメニューからユニットを使うを選択し、上のフォームのユニットを選択します。
そうするとフォーム2のソースに以下のコードが挿入されます。
もちろん手入力で書いてもOKです。
var
Form2: TForm2;
implementation
uses Form1; // ←ここが追加される
フォーム2からは
Form1.i := 0;
のような記述で値を操作することができます。
基本はpublicで宣言すると外部から参照が可能になるということです。
Halbow です。
Unit2 の implementation の下に uses Unit1; を加えて
[ i が Unit1 でグローバル変数の場合 ]
i := Unit1.i;
case i of
1: ...
2: ...
3: ...
[ i が Unit1 で Form1 のフィールド変数の場合 ]
i := Form1.i;
case i of
1: ...
2: ...
3: ...
とするとよいのでは。
>きのこのこさん
一部訂正します(汗
uses Form1; // ←ここが追加される
じゃなくて
uses Unit1; // ←ここが追加される
ですね。失礼しました。
IDEを使わないで書いたので凡ミスです(汗)。
>Halbowさま
今朝はありがとうございました。
なるほど。そういう書き方も出来るんですか?
吉岡さん、Halbowさん、ご教授ありがとうございました。
上手くできました。
これでまた一つDelphiにおいて賢くなりました。
ありがとうございました。
ツイート | ![]() |