±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
°­ÁÂ, ÆÁ, Á¤º¸ °­ÁÂ, ÆÁ, Á¤º¸ ÀÔ´Ï´Ù.
±Û³»¿ë - °­ÁÂ, ÆÁ, Á¤º¸
 FreeAndNil »ç¿ë½Ã¿¡ ÁÖÀÇ ÇÒ Á¡ ÇÑ °¡Áö
¾çº´±Ô
(¾çº´±Ô)
2009-06-18 ¿ÀÀü 10:27:04
Ä«Å×°í¸®: °­ÁÂ
8287ȸ Á¶È¸



µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.
(¿©±â¿¡¼­ ¼³¸íÇÏ´Â ³»¿ëÀÇ ¼Ò½ºÄڵ带 ÷ºÎÇß½À´Ï´Ù.)



FreeAndNil
¿¡ °üÇÑ ¹®Á¦´Â °Ë»öÇØ º¸¸é ¿©·¯ Â÷·Ê ³íÀÇ°¡ µÈ ÀûÀÌ ÀÖÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù.



FreeAndNil ÀÚü¿¡´Â »ç½Ç Å« ¹®Á¦´Â ¾øÀ½¿¡µµ ºÒ±¸ÇÏ°í



Test1.Free;

Test1 := nil;



ÀÌ·¸°Ô Çϸé Àß µÇ´ø °ÍÀÌ FreeAndNil( Test1 );ÇÏ¸é ¹®Á¦°¡ µÈ´Ù´Â °ÍÀÌ ´ëÇ¥ÀûÀÎ °æ¿ìÀÔ´Ï´Ù.



±×·± ¹®Á¦¸¦ Á¦±âÇÑ ´ëÇ¥ÀûÀÎ °æ¿ì°¡ °­Á °Ô½ÃÆÇ¿¡ ÀÖ½À´Ï´Ù.



http://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=0&st=S&keyword=FreeAndNil&indx=195996&keyword1=FreeAndNil&keyword2=&page=1



Àú¿Í ´Ù¸¥ ºÐÀÌ ÀÌ ±Û¿¡¼­ 'FreeAndNilÀº ¾ÈÀüÇÏ´Ù'¶ó°í ÁÖÀåÀ» Çß½À´Ï´Ù¸¸..



»ç½Ç Àú´Â ±×µ¿¾È ÀüÇô ¹®Á¦°¡ ¾ø¾ú°í FreeAndNilÀÇ ¼Ò½º¸¦ ºÁµµ ¹®Á¦°¡ ¾øÀ» °ÍÀ¸·Î »ý°¢µÇ¾îÁ®¼­  '¾ÈÀüÇÏ´Ù'¶ó´Â ¸»À» ÀڽŠÀÖ°Ô Çߴµ¥..



°£°£È÷ ´Ù¸¥ »ç¶÷µéÀÌ ÄÚµùÇÑ °ÍÀ» º¸¸é¼­ 'ÄÚµù½À°ü¿¡ µû¶ó¼­ ¹®Á¦°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù'¶ó´Â °ÍÀ» ±ú´Þ¾Ò¾ú½À´Ï´Ù.



ÀÌ »ç½ÇÀ» ±î¸Ä°Ô ÀØ°í ÀÖ¾ú´Âµ¥ Á¶±Ý Àü¿¡ ¸Þ½ÅÀú·Î ´©±º°¡°¡ ±×°ÍÀ» ¹°¾îº¸´Â ¹Ù¶÷¿¡ »ý°¢ÀÌ ³ª¼­ ¶Ç ±î¸Ô±â Àü¿¡ Àû¾î ³õ½À´Ï´Ù.



½ÃÀÛ.



´ÙÀ½°ú °°Àº Ŭ·¡½º°¡ ÀÖ´Ù°í Ĩ½Ã´Ù.










type

  TTest = class

  public

    procedure ShowMsg(const S: String); virtual;

    destructor Destroy; override;

  end;



implementation



var

  Test1: TTest;



destructor TTest.Destroy;

begin

  Test1.ShowMsg( 'Destroy' );


  inherited;

end;


procedure TTest.ShowMsg(const S: String);

begin

  ShowMessage( S );

end;





TTest¶ó´Â Ŭ·¡½º°¡ ÀÖ°í..

Test1: TTest;¿Í °°ÀÌ º¯¼ö¸¦ ¼±¾ðÇؼ­ »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù.



ÀÌ »óÅ¿¡¼­ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ °æ¿ì..









  Test1 := TTest.Create;

  try

    Test1.ShowMsg( 'Button1Click' );

  finally

    Test1.Free;

    Test1 := nil;

  end;



ÀÌ °æ¿ì¿¡´Â ÀüÇô ¹®Á¦°¡ ¾ø½À´Ï´Ù. ±×·¯³ª ´ÙÀ½°ú °°ÀÌ FreeAndNilÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ¹®Á¦°¡ »ý±é´Ï´Ù.









  Test1 := TTest.Create;

  try

    Test1.ShowMsg( 'Button1Click' );

  finally

    FreeAndNil( Test1 );

  end;



ÀÌ ¹®Á¦ÀÇ ¿øÀÎÀº ¼Ò¸êÀÚ Destroy¿¡¼­ Test1 º¯¼ö¸¦ »ç¿ëÇÏ°í ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù.



´ÙÀ½Àº FreeAndNilÀÇ ¼Ò½ºÀÔ´Ï´Ù.









procedure FreeAndNil(var Obj);

var

  Temp: TObject;

begin

  Temp := TObject(Obj);

  Pointer(Obj) := nil;

  Temp.Free;

end;



ÀÌ ¼Ò½º¸¦ º¸¸é ¾Ë ¼ö ÀÖµíÀÌ Free  And  NilÀÌ ¾Æ´Ï°í Nil  And  FreeÀÔ´Ï´Ù.



±×·¯¹Ç·Î FreeAndNil( Test1 ); À» ÇÏ¸é ¼Ò¸êÀÚ Destroy°¡ ½ÇÇàµÇ´Â ½ÃÁ¡¿¡¼­ Test1 º¯¼ö´Â nil·Î ¼¼ÆõǾîÁ® ÀÖ°í ±×°ÍÀ» ¾×¼¼½º ÇßÀ¸¹Ç·Î ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.



¹°·Ð ÀÌ·¸°Ô ¼Ò¸êÀÚ¿¡¼­ ÀÚ½ÅÀÇ ÀνºÅϽº º¯¼ö¸íÀ» Á÷Á¢ »ç¿ëÇÏ´Â °æ¿ì´Â ¸¹Áö ¾Ê°ÚÁö¸¸ (ÀÌÇØ´Â ¾ÈµÇÁö¸¸..»ý°¢º¸´Ù´Â ¸¹´õ¶ó´Â..¤Ñ¤Ñ; ) ¼Ò¸êÀÚ¿¡¼­ ´Ù¸¥ Ŭ·¡½º¸¦ FreeÇÏ°í ±× ´Ù¸¥ Ŭ·¡½º¿¡¼­ ÀÚ½ÅÀÇ ÀνºÅϽº¸¦ »ç¿ëÇÏ´Â °æ¿ì.. Áï, ÇÑ ¹ÙÄû µ¹¾Æ¼­ °á°úÀûÀ¸·Î ¼Ò¸êÀÚ¿¡¼­ ÀÚ½ÅÀÇ ÀνºÅϽº¸¦ »ç¿ëÇÏ´Â ²ÃÀÌ µÇ´Â °æ¿ì¿¡´Â FreeAndNilÀ» »ç¿ëÇÏ¸é ¿¡·¯°¡ ³³´Ï´Ù.



Àú´Â ¾îÁö°£Çؼ­´Â Àü¿ªº¯¼ö »ç¿ëÀº ÃÖ¼ÒÈ­Çϴµ¥ Àü¿ªº¯¼ö¸¦ ½À°üÀûÀ¸·Î ¸¹ÀÌ »ç¿ëÇÏ´Â »ç¶÷µéÀ̳ª ÆûÀ» ¸¹ÀÌ »ç¿ëÇÏ´Â °æ¿ì¿¡ ÀÌ·± ÀÏÀÌ ÀÚÁÖ »ý±é´Ï´Ù¸¸ µÎ °æ¿ì ¸ðµÎ Àü¿ªº¯¼ö°¡ ¸¹´Ùº¸´Ï ÀÌ·± ÄÚµùÀÌ ¸¸µé¾îÁú È®·üÀÌ ³ô¾ÆÁö´Â °Í °°½À´Ï´Ù.



°³ÀÎÀûÀÎ »ý°¢À¸·Î´Â »ç½Ç FreeAndNilÀÇ À߸øÀ̶ó±â º¸´Ù´Â ±×·¸°Ô ÄÚµùÇÏ´Â °ÍÀÌ ´õ ÁÁÁö ¾ÊÀº °Í °°½À´Ï´Ù¸¸.. ±× Á¤µµ´Â °³ÀÎÀûÀÎ ÃëÇâÀ¸·Î ÀÎÁ¤ÇÒ ¼ö ÀÖÀ» °Í °°½À´Ï´Ù. ±×·¯¹Ç·Î FreeAndNilÀ» »ç¿ëÇϸ鼭 ¹®Á¦°¡ µÈ °æÇèÀÌ ÀÖ´Â »ç¶÷Àº ±×³É ¾È¾²¸é µÈ´Ù´Â °á·ÐÀÔ´Ï´Ù. (FreeAndNilµµ ³ª»Ú³×.. ¿Ö ±×·¸°Ô ¸Í±Û¾î°¡Áö°í....)



³¡.



### ¿î¿µÁø ###

º» °Ô½Ã¹°ÀÇ Ã·ºÎÆÄÀÏÀº ¹ÙÀÌ·¯½º¿¡ °¨¿°µÇ¾î »èÁ¦Ã³¸®µÇ¾ú½À´Ï´Ù.

ÇØ´ç ¹ÙÀÌ·¯½º´Â w32