名前 題名 ▼ Mr.XRAYさん > ▼ Novさん > > > つまり、varはポインタそのものに効果があるだけですよね(たぶん)。 > > > > あ、これだけ読むとなんのことかよくわからないですね。 > > 「ポインタにvarをつけた場合は」ってことです。 > > ですね.クラス,動的配列の引数は,元々クラス参照と同じとなります. > var を付けると,その参照となります. > 動的配列は,Create しなくても使用できてしまうので,Class 型で > 確認してみます. > (注: このコードはメモリリークが発生します) > > type > TTestClass = class(TObject); > > > procedure ABC(var AClass: TTestClass); > var > P : PInteger; > begin > AClass := TTestClass.Create; > P := @AClass; > Form1.Label2.Caption := IntToStr(P^); > end; > > procedure TForm1.Button1Click(Sender: TObject); > var > AClass : TTestClass; > P : PInteger; > begin > AClass := nil; > AClass := TTestClass.Create; > try > P := @AClass; > Label1.Caption := IntToStr(P^); > > ABC(AClass); > if AClass <> nil then begin > P := @AClass; > Label3.Caption := IntToStr(P^); > end; > finally > FreeAndNil(AClass); > end; > end; > > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link