Q&A

  • timer를 이용한 messagebox에서 컨트롤??
안녕하세여..
TIP에 올라온 자료를 수정해서 써볼려는데, 잘안되서 글올립니다.
자료에서 버튼 1개짜리로 showmessge와 비슷하게 되어있더군요.
전 버튼 2개를 써볼려는데...  쩝 어렵네요..

procedure messageboxTimerProc(hWnd: HWND; uMsg: UINT; idEvent: UINT; Time: DWORD);
begin
PostQuitMessage(0);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   idTimer: UINT;
   msg: TMSG;
   result : integer;
begin
   idTimer := SetTimer(0, 0, 2000, @messageboxTimerProc);
   result := messagebox(0, '1', '정보', MB_yesno);
   KillTimer(0, idTimer);
   PeekMessage(msg, 0, WM_QUIT, WM_QUIT, PM_REMOVE);
   memo1.Lines.Add(inttostr(result));  //결과값출력
end;

result값을 비교해서 각기 다른 이벤트를 줄려고 하는데요.
질문1] 왜 result값이 integer값으로 나오는지 모르겠네요.
          그리고 '예'버튼 클릭시 result = 6
                     '아니요'버튼클릭시 result = 7
                     timer에 의해서 자동소멸시 result = 6 이 나옵니다.
          왜 결과값이 6,7인지 궁금합니다.
질문2] timer자동소멸시 값을 '아니요'버튼과 같게 하려면 어떻게 해야되
          나요.

그럼 수고들하세요... 총총
1  COMMENTS
  • Profile
    이상민 2003.02.07 21:02
    제가 성급했네요.. 아이고..
    델파이헬프뒤져보니 나오네욤.. 쩝
    질문1] 답: messagebox는 return값이 integer형이네요.
                   그리고 ok=1, cancel=2, abort=3, retry=4...... 이런식이네요.

    질문2] if PeekMessage(msg, 0, WM_QUIT, WM_QUIT, PM_REMOVE) then
                result:=7;