nil은 메모리를 비운다는 뜻이 아니라 아무것도 가리키지 않는다는 뜻입니다. 메모리를 비운다는 것은 Free의 성격이라고 할 수가 있겠네요...
그러니까 nil은 참조하는 포인터가 없다는 거죠... 델파이에서 모든 객체는 포인터인거 아시죠.
Free는 생성된 객체를 메모리에서 제거하는 기능을 합니다. 이렇게 메모리에서 제거가되면 그 메모리를 다른 프로그램에서 쓸 수가 있게되는 겁니다.
Free를 시키더라도 그 객체를 가리키는 인스턴스 변수(아래에서 frm1)는 여전히 같은 곳을 가리키고 있습니다. 그러니까 메모리에서는 제거가 되었지만 같은 위치를 가리키고 있는거죠. (frm1 <> nil) 그렇기 때문에 아무것도 가리키지 않는다는 것을 확실히 하기위에서 (에러방지차원에서...) nil을 대입하는 겁니다...
큰 차이는 없는거 같으면서도 있네요...
Frm1이라는 인스턴스변수가 nil로 된다는 것이 가장 큰 차이점이군요...
첫번째 코딩은 항상 Free된다는 것이구요...
x아이콘을 누르면 상황에 따라서 Free가 될때도 있고(첫번째 코딩처럼), Minimize될 때도 있습니다.
^^ 항상 즐코하세요...