귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
媛뺤쥖, 똻, 젙蹂 媛뺤쥖, 똻, 젙蹂 입니다.
글내용 - 媛뺤쥖, 똻, 젙蹂
 씡紐 硫붿냼뱶쓽 濡쒖뺄 蹂닔 罹≪쿂湲곕뒫쓣 쓳슜븳 Guard븿닔
梨꾪똿
(쁽二쇱슜)
2019-08-16 삤쟾 5:19:26
카테고리: 똻
1794회 조회



등록된 파일이 없습니다.

吏湲 궗슜以묒씤 씡紐낅찓냼뱶瑜 궗슜븳 Guard븿닔(try..finally 슜)쓣 쟻뒿땲떎. 젣媛 媛吏 냼뒪뒗 떎瑜 寃껉낵 뿰怨꾨맂 寃껋씠 留롮븘 븘옒 떎瑜 遺꾩쓽 냼뒪瑜 媛꾨떒븯寃 닔젙븯뿬 쟻뒿땲떎.

湲곗〈쓽 Guard뒗 怨좎젙맂 삎깭쓽 硫붿냼뱶 삎깭留 媛뒫븯吏留 씡紐낇븿닔瑜 궗슜븯硫 젣븳씠 궗씪吏묐땲떎.

=== 궗슜 삁 -====

var stream: TStream;

ds: TxxConnect;

begin

stream := TMemoryStream.Create;

Screen.Cursor := crHourglass;

ds := TxxConnect.Create;

//Finally釉붾윮뿉꽌 궗슜븯뒗 援щЦ 쟾泥대 쟻쑝硫 맗땲떎.

Guard( procedure begin

     stream.Free;

     Screen.Cursor := crDefault;

     if (ds.Connected) then ds.Disconnect;

     ds.Free; 

    end;);

ds.Connect;

.....

 

 

=====  븿닔 냼뒪 ====

TProc = reference to procedure ; //씡紐낇븿닔

function Guard(event : TProc): IUnknown; overload;



implementation

type

TFinalObject = class(TInterfacedObject)
private
FProc : TProc;
public
constructor Create(Instance: TProc); overload;

destructor Destroy; override;

end;

 

constructor TFinalObject.Create(Instance: TProc);

begin

Fproc := Instance;
end;

 

destructor TFinalObject.Destroy;

begin

  if Assigned(FProc) then FProc;
  inherited;

end;

function Guard(event : TProc): IUnknown; overload;

begin

  Result := TFinalObject.Create(event);

end;