Q&A

  • 비베의 DoEvents같은 함수가 델피에는 없나요...?
왜냐하면요...아래의 문을 실행시키면 화일카피함수가 끝나고 라벨에 출력이 되거든요....그런데 라벨에는 각각 소스화일 타겟화일이름을 먼저 출력해주고 화일카피함수가 실행되야하는데....화일카피가 다 끝나고 출력되네요...쩝...그리고 한가지더 화일카피가 끝나면 폼을 종료하고 싶은데 어찌해야하나요...

  lblSource.Caption := strSourceFile; //소스화일이름
  lblTarget.Caption := strTargetFile;  //타겟화일이름
  pbrView.Position := 0;
  FileCopy(strSourceFile,strTargetFile,pbrView);
->여기서 폼종료
6  COMMENTS
  • Profile
    구경덕 2003.05.22 23:54
    제 생각에는...
    비베의 DoEvents가 델파이에서 대응되는 것은 Application.ProcessMessage
    인 걸로 알고있습니다. 레이블의 출력이 작업완료 후 나타날 시 대처는
    비베에서 DoEvents로 처리했다면,
    델파이에서는
    lblSource.Caption := strSourceFile; //소스화일이름
    lblTarget.Caption := strTargetFile;  //타겟화일이름
    ==> Application.ProcessMessage; //이러면 먼저 레이블에 표시된 후
    ==> Showmessage('작업완료');
    ==> close;  //
    요기서 작업 완료 후 폼을 바로 닫게 되면은 여러가지 골치아프죠(처리가 된건지 됐다면 제대로나 된건지 기타등등)

    ...요런 방법도 있습니다.

  • Profile
    변상호 2003.05.23 00:44
    Close; 해도 폼이 안사라집니다...(디자인타임에 만들어진 폼이고, 모달폼입니다)
  • Profile
    구경덕 2003.05.23 01:04
    해제하고자 하는 폼 이벤트를 보시면 OnClose이벤트를 더블클릭해서
    Action := cafree;
    라고 작성한 후 해보세여...그러면 됩니다.

  • Profile
    박준호.시나브로 2003.05.23 05:21

    caFree 는 모달리스폼일 경우에 메모리에서 완전히 해제시키는거구 모달폼은

    프로젝트에서 해당폼이 동적으로 생성되는지 혹시나 첨에 생성되도록 되어있

    으면 Available Forms 로 옮겨놓구 ModalResult := mrOk; 이거 아닌가여??

    저는 그렇게 알구있거든여.. ㅡ.ㅡ;
  • Profile
    구경덕 2003.05.23 18:58
    앗! 죄송...
    제가 잘못 읽었군요.
    맞습니다. 맞고요!!!
    모달폼은 별도의 종료이벤트가 필요없습니다.
    님이 말씀하신대로 ModalResult := mrOK 값을 주신 후
    호출한 폼에 if Buttonxx.ModalResult = mrOK then...
    처리내용을 적어 주시든지 아니면 처리완료 메세지를 보여준 후
    사용자가 확인버튼을 클릭해야 없어지는 걸로 알고 있습니다.
    만일 강제종료를 원하신다면 API함수를 써보시죠
    if not CloseWindow(닫고자하는 폼명.handle) then
    showmessage('Can't Close Form!');


    좋은 하루 되세요.
  • Profile
    이중철 2003.05.22 23:48