変数宣言と初期化

解決


さばー  2005-04-27 00:47:32  No: 14488  IP: [192.*.*.*]

変数を宣言した時に初期化する方法はあるのでしょうか?
Cで表した場合でいう、
int A = 0;
↑の形です。

編集    削除
23  2005-04-27 01:18:17  No: 14489  IP: [192.*.*.*]

ヘルプ
  Object Pascal 言語ガイド
  変数の宣言
を参照のこと

編集    削除
初心者999  2005-04-27 01:18:41  No: 14490  IP: [192.*.*.*]

ヘルプには駄目とかかれています。
私の場合、どうしてもローカルの変数をまとめて初期化したいときは、
下記のようにしています。
procedure TForm1.FormCreate(Sender: TObject);
var
    i, j: integer;

    procedure Initialize;
    begin
        i := 0;
        j := 0;
    end;

begin
    Initialize;
    ShowMessage( IntToStr(i) );
    ShowMessage( IntToStr(j) );
end;

編集    削除
HOta  2005-04-27 01:21:38  No: 14491  IP: [192.*.*.*]

さばーさん

型付き定数で代用できませんか?

Const
  i : Integer = 0;

編集    削除
さばー  2005-04-28 17:29:42  No: 14492  IP: [192.*.*.*]

説明が足りない様ですいません。
ヘルプでは、ローカル変数で宣言と同時に初期化はできないようです。

関数内でのカウンタとして利用したかったのですが、
やはりローカル変数では無理なようですか?

Static Int C=0;
みたいに宣言しておいて関数内でカウンタ利用

編集    削除
kkk  2005-04-28 21:48:04  No: 14493  IP: [192.*.*.*]

0で初期化したいのならその必要ないのでは?

編集    削除
りおりお  2005-04-28 22:36:31  No: 14494  IP: [192.*.*.*]

> 0で初期化したいのならその必要ないのでは?

ローカル変数は初期化しなければ不定です。

編集    削除
kkk  2005-04-28 22:43:59  No: 14495  IP: [192.*.*.*]

なるほど
さばーさんはローカル変数とおっしゃてますね。

編集    削除
りおりお  2005-04-29 04:38:46  No: 14496  IP: [192.*.*.*]

> 関数内でのカウンタとして利用したかったのですが、
> やはりローカル変数では無理なようですか?

C の static に相当する Delphi の変数は無い、と思ってください。
コンパイラ指令を使うと出来るそうですけど。

ですから、グローバル変数か、クラスのフィールド変数にしてください。その場合は
ゼロで初期化する必要はありません。

編集    削除
さばー  2005-05-06 17:12:36  No: 14497  IP: [192.*.*.*]

Static は無いですか。
りおりおさんの方法でやってみます。

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

編集    削除