Q&A

  • 폼 우측상단에 있는 x표시된 종료버튼 눌러도 종료안되게 할 수 있나요?
폼 우측상단에 보면 최소화 / 최대화 / 종료 이렇게 있는데여
X 표시 된 종료 버튼 눌렀을 때 종료 안되게 하려는데 잘 안되네요

closequery에서 CanClose를 전역변수값을 이용해서 조절하면 되긴하는데요
누르고 있는 순간에 폼에서 이루어지고 있는 동작들이 다 멈추고 있습니다.
마우스 버튼을 놓아야 다시 진행을 하고여

for i:=0 to 100 do
begin
   Edit1.text := inttostr(i);
   Sleep(50);
   Application.ProcessMessage;
end;

위에 구문이 동작하고 있을 때 종료 버튼을 누르면 멈추고 놓으면 다시 동작이 됩니다.
누르고 있어도 메시지를 무시하게 할 수 없나요?
4  COMMENTS
  • Profile
    무심코 2005.01.20 18:47
    public
        { Public declarations }
        procedure WMNCHitTest( Var msg: TWMNCHitTest );
            message WM_NCHITTEST;



    procedure TForm1.WMNCHitTest( Var msg: TWMNCHitTest );
    begin
            inherited;
              If msg.result = HTCLOSE Then //Close 버튼클릭
              msg.result := HTNOWHERE;  //그냥 넘어가라
      End;

    참고) HTCAPTION //캡션바를 누를때
            기타등등....Windows.pas 를 참고하세요!
  • Profile
    최용일 2005.01.19 04:49
    안녕하세요. 최용일입니다.

    그냥 잠시 종료버튼을 사용중지시키시는것은 어떨런지...

    function LwEnableSystemMenuItem(Handle: THandle; MenuCommand: LongWord;
        Enable: Boolean): Boolean;
    // Enables the specified system menu item.
    // MenuCommand => System Menu Command (Ex: SC_CLOSE, SC_ICON)
    var
        EnableFlag: LongWord;
        SystemMemuHandle: HMenu;
    begin
        EnableFlag := MF_GRAYED or MF_BYCOMMAND;
        if Enable then
            EnableFlag := MF_ENABLED or MF_BYCOMMAND;

        SystemMemuHandle := GetSystemMenu(Handle, False);
        Result := EnableMenuItem(SystemMemuHandle, MenuCommand, EnableFlag);
    end;

    ex);
        LwEnableSystemMenuItem(Form1.Handle, SC_CLOSE, False); // 사용불가
        for ..........
        LwEnableSystemMenuItem(Form1.Handle, SC_CLOSE, True); // 사용가능

    ^^ 항상 즐코하세요...

  • Profile
    김종균 2005.01.19 05:55


    답변 감사드립니다.

    종료버튼이 기능을 수행을 안하게 되는데도
    누르고 있으면 멈추네요 무슨 문제인지...
    다른 방법이 없을까요?
  • Profile
    구창민 2005.01.24 22:35
    종료버튼을 계속 누르고 있어야 될 상황이 어떤건지 궁금하네요 ㅎㅎ;

    그것은 작성하신 프로그램의 문제가 아니라 모든 프로그램이 마찬가지입니다.

    마치 식사하려는 사람의 팔을 꽉 잡고 있는 거나 마찬가지라고 말씀드릴 수 있겠네요..

    팔을 움직이지 못하게 꽉 잡고선 얼른먹어? <- 이래서 되겠습니까? ㅎㅎ;

    그런 상황을 전제한 설계자체가 다른 방향으로 진행되어야 할 거 같습니다.

    그럼 즐거운 프로그래밍 하세요~