- 호출부
SendMessage(호출되는 handle,  WM_SampleCall, AHandle.Handle, DWORD(PChar(ADescription)));

- 수신부
(선언)
procedure _SampleCall(var Message: TMessage); message WM_SampleCall;
(구현)
procedure TfrmMain.SampleCall(var Message: TMessage);
var
  sMsg : PChar;
begin
  sMsg := PChar(Message.lParam);
  Message.Result := 1;
  ShowWait(nil, sMsg);
end;


uses Soap.EncdDecd;
(bpl : soaprtl240.bpl)

function EncodeFile(const FileName: string): AnsiString;
var
  msStream: TMemoryStream;
begin
  msStream := TMemoryStream.Create;
  try
    msStream.LoadFromFile(Filename);
    Result := EncodeBase64(msStream.Memory, msStream.Size);
  finally
    FreeAndNil(msStream);
  end;
end;


Application.MessageBox(PChar('시작'), '정보', MB_ICONINFORMATION);

// try문 외부에서 예외발생 경우
raise Exception.Create('예외경우 발생!'); // 아래 finally 구문 미실행 + Exit()

// try문 외부에서 Exit()할 경우
if 조건 then Exit(); // 아래 try..finally와 관계 없이 종료

try

  try
      ...
      raise Exception.Create('예외발생!'); // except + finally + next 을 모두 수행
      Exit(); // except + finally + next 을 모두 수행(=Exception.Create 와 함께 사용할 필요없는 구문)
      ...
  except
      on e: Exception do
      begin
         // 예외 발생시에만 수행 - finally + next 수행
         Application.MessageBox(PChar(e.Message), PChar('에러'), MB_ICONERROR + MB_OK);
          Exit(); // finally 까지 수행하고 종료 (next 미수행)
      end;
   end;
finally
   // 예외 발생 여부 및 try구문 내의 Exit() 유무에 상관없이 무조건 수행되는 구문
   FreeAndNill(obj);
end;

Application.MessageBox(PChar('next'), PChar('next'), MB_ICONERROR + MB_OK);

 

원본 링크 : http://byhou.tistory.com/375

+ Recent posts