Q&A

  • Screen.Cursor 모양 유지하기
어떤 작업을 시작해서 끝날 때 까지 커서모양을 모래시계모양으로
바꿀려고 합니다.
메서드의 시작부분에 Screen.Cursor := crHourGlass; 라고
써주었는데

procedure TForm.test();
begin
    Screen.Cursor := crHourGlass;
end;

이렇게 하면 모래시계가 잘 나옵니다.
근데 메서드안에서 다른 메서드를 호출하면 커서모양이 금세 화살표
모양으로 바뀝니다.

procedure TForm.test();
begin
    Screen.Cursor := crHourGlass;
    test1();    <-   다른 메서드 호출시 커서모양이 화살표 모양으로 바뀜
end;

왜 그런건지 이유를 잘 모르겠습니다.
Screen.Cursor := xxx  ; 이렇게 쓰면 프로그램 내 전체영역의 커서에
적용된다고 알고있는데.. 다른 함수를 호출하는 거랑 상관이 있는건지..

그리고, 모래시계 모양이 되도 프로그램내의 메뉴를 선택 할 수 있던데,
커서가 모래시계모양일 경우 아무것도 선택하지 못하게 하고싶습니다.
옛날 질문을 보니까  '마우스 훅킹'이라는 방법이 있던데 넘 어려워서
사용할려고 보니 힘든 것 같습니다. 쉽게 쓸 수 있는 방법없을까요

도움 부탁드립니다.

1  COMMENTS
  • Profile
    최용일 2002.08.14 19:31
    안녕하세요. 최용일입니다.

    상관이 있습니다. 그 호출하는 함수에서 커서를 바꾸면 님보다 그쪽에서 설정한게 적용이 됩니다. 님이 Test란 프로시져를 호출한뒤에 커서가 바뀌는 것처럼...

    모래시계모양이 되는거하고 선택하지 못하는거하곤 별 상관이 없습니다. 선택하지 못하게 하고 어떤 작업을 하는게 길어지는 동안 사용자의 지루함을 없애기 위해서 커서 모양을 바꾸어서 보여주는 것 뿐이거든요...

    어떤 작업하시기전에 컴포넌트의 Enable속성을 False로 바꾸고 커서도 바꾸시고, 작업을 하세요. 작업 끝나신 뒤에 원상복귀 시켜주시구요...

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