名前 題名 ▼ takiさん > ▼ Mr.XRAYさん > > 手続き(関数)の引数として動的配列を使うときに注意が必要という事みたいです。 > > type > TTestAry = array of integer; > > procedure ABC(buf:TTestAry); > begin > Form1.Label1.Caption := inttostr(buf[0]); // 999 > // 何の気なしに手続き内で値を変更する > buf[0] := 888; > end; > > procedure TForm1.Button1Click(Sender: TObject); > var > Abuf:TTestAry; > begin > SetLength(Abuf,1); > Abuf[0] := 999; > // 手続きを呼び出す > ABC(Abuf); > // Abufの値が変化してしまう > Label2.Caption := inttostr(Abuf[0]); // 888 > end; > > これって > procedure ABC(var buf:TTestAry); と同じですよね。 > > 『var』と書いていないのに var 扱いになる!! > 踏んじゃいそうですね。 > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link