2011-09-15 6 views
6

는 일반적으로,이 같은 스크립트를 사용 : 커서 :Firemonkey를 사용하면 어떻게 사용자에게 피드백을 줄 수 있습니까? 나는 약간의 시간이 걸리는 작업이있을 때 (crHourglass는)

FireMonkey와
procedure Work; 
var 
    cPrevious: TCursor; 
begin 
    cPrevious  := Screen.Cursor; 
    Screen.Cursor := crHourGlass; 

    try  
    // the task 

    finally  
    Screen.Cursor := cPrevious; 
    end; 
end; 

, 화면는 속성이 없습니다.

사용자에게 의견을 제시하는 가장 좋은 방법은 무엇입니까?

Feedback

:



나는 적은 투명도를 가진 TPanel과TAniIndicator와의 의견과 대답 (나는 또한 다른 구성 요소를 흐림) 다음

감사합니다.

+4

(일부 알파 혼합 사각형을 중첩에 의해) 형태 디밍 및 애니메이션 GIF를 표시 : – mjn

+1

또한이 시간 동안 사용자 상호 작용이 필요하지 않은 경우 컨트롤을 비활성화하고 "잠시 기다려주십시오 ..."와 같은 메시지가있는 패널을 표시하고 mjn과 같은 애니메이션 GIF 또는 진행률 표시 줄을 표시하여 더 명확하게 지정할 수 있습니다 앱이 정지되지 않았 음을 나타냅니다. @mjn : +1 디밍 효과 및 gif, 멋진 터치 – Morfic

+1

예, 의미가 있습니다. 참고로, TAniIndicator는 다음과 같이 보이는 구성 요소입니다. 모든 ajaxload : o) – Whiler

답변

1

@mjn과 마찬가지로 유리 시간 커서는 사용할 수있는 유일한 대기 패턴이 아닙니다.

예를 들어, 실버 라이트/WPF, 당신은 http://www.codeproject.com/KB/silverlight/SilverlightBusyIndicator.aspx

그래서 당신은 FireMonkey 내부 비슷한 일을하려고 할 수 있습니다, 바쁜 지표 컨트롤을 사용할 수 있습니다. 이미 사용할 수있는 유사한 컨트롤이있을 수도 있고 직접 작성할 수도 있습니다.

1

FireMonkey 함께 tscreen은 더 커서 속성이 없지만, 글로벌 플랫폼 인스턴스가에서는 SetCursor 방법이 있습니다

이 FMX.Platform, System.UITypes 사용을;

... Platform.SetCursor (nil, crHourGlass); 시도하십시오 ... 마지막으로 Platform.SetCursor (nil, crDefault); 끝; - HTTP에서 생성 할 수 있습니다 그 중 하나처럼

`Application.MainForm.Cursor:= crHourGlass;` 
+0

방금 ​​스크립트를 시험해 봅니다 ... 스크립트가 끝나지 않는 한 작동합니다. t 'ProcessMessages' 호출 ... ... Platform.SetCursor (nil, crHourGlass); 수면 (3000); 경고음; while (CheckBox1.IsChecked 아님) do begin Application.ProcessMessages; 끝; ShowMessage ('over'); ' – Whiler

1

은 FireMonkey2는 XP에서 실행 XE3에 나를 위해 작동 : //www.ajaxload.info/ - 어쩌면?
+0

FYI : XE2에는 존재하지 않습니다. – Whiler

+0

또한, 모든 구성 요소에 모래 시계가 도처에 있습니다. 구성 요소가없는 'Form'에만 국한되지 않습니다. – Whiler