Ich würd' dann noch Folgendes ändern.
.Free statt .Release
Lokale Variable frm statt globale Variable Form2 verwendet
Private Methode EditPerson - damit wird im Code klar ausgedrückt, was hier passieren soll
Delphi-Quellcode:
procedure TForm1.EditPerson(var person:TPerson);
var
frm : TForm2;
begin
frm := TForm2.Create(nil);
try
frm.Person := person;
if frm.ShowModal = mrOK then
person := frm.Person;
finally
frm.Free;
end;
end;