2015-01-23 10 views
0

제스처 및 GestureManager를 처음 사용하기 때문에 응용 프로그램 실행 지연에 대해 알 수없는 원인이있는 매우 익숙하지 않은 상황에 직면하고 있습니다. (VCL 유형 응용 프로그램)Delphi - GestureManager XE3 + TMS 구성 요소를 사용할 때 양식에 지연/정지가 발생했습니다.

TGestureManager를 양식의 Touch.GestureManager 속성에 적용하면 해당 양식이 처음 표시되도록 호출 될 때 응용 프로그램 고정/지연이 약 5 초가되는 것 같습니다 . 제스처가 활성화 (선택)되어 있지 않은 경우에도. Touch.GestureManager 속성을 폼에서 제거하면 즉시 폼이 Form.Show 이벤트와 함께 즉시 표시됩니다. 응용 프로그램은 시작할 때 모든 양식을 작성하므로 Form.Show 이벤트를 호출 할 때 양식이 이미 작성됩니다.

양식 자체가

... (... 그것에 배치 꽤 많은 구성 요소와, FullHD 해상도 크기) 매우 무거운이지만, 사용 GestureManager없이 속도 문제를 표시하지 않습니다 난 단지 수 지금까지에 대한 웹에 하나 개의 주제를 찾을 수 있지만, 대답은 정말 도움이되지

건배

을 (PC에서 "태블릿 PC"옵션을 설정하는 제안. 이것은 이미 ... 수행) 편집 : "덜 무거운"형태로, ,

type 
    TForm1 = class(TForm) 
    Button1: TButton; 
    procedure Button1Click(Sender: TObject); 
var 
    Form1: TForm1; 
implementation 
{$R *.dfm} 
uses Unit2; 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
    Form2.show; 
end; 
end. 

통화 형식 2 : 거기에 엔트)는 지연 ... 여전히 지연을 생성

Edit2가 코드

예 불구하고 주위 2-3초 약간 낮은 20 개의 TAdvGlassButton 개체 (TMS 구성 요소 팩의 일부)가있는 깨끗한 폼과 Form2.Touch.GestureManager 속성에 할당 된 GestureManager입니다. 이것은 Button1이 눌려지면 (그리고 Form2가 보여 져야 할 때) 약 2 초 지연을 생성합니다;

+0

이는 VCL 또는 FMX 응용 프로그램입니다 ... 구성 요소가 자동으로 해당 기능을 사용하지 않도록 설정하는 방법뿐만 아니라, 정말 좋은 질문을 폼의 속성을한다 복용 TMS? – SilverWarior

+0

그냥 테스트를했는데 각 구성 요소에 GestureManager가 할당되어있는 동안 양식에 100 개 이상의 구성 요소가있는 경우에도 FMX에서이를 재현 할 수 없습니다. – SilverWarior

+0

방금 ​​전 2000 년에 프로그래밍 방식으로 생성 된 패널을 사용해 보았습니다. 제스처 관리자가 폼이나 다른 컨트롤에 할당 된 차이가없는 것으로 보입니다. 첫 번째 양식을 표시하기 전에 지연이 모든 시나리오에서 동일하게 보인다. – SilverWarior

답변

0

추측 왜 나는 "왜"지연이 나타나는 지에 대한 내 자신의 대답을 생각해 냈습니다.

이 (TMS 구성 요소 것 같은데 내가 할 수있는 : 사람이 수치 경우

지금, "그것을 해결하는 방법"이 질문은

는 지금까지 '왜'생각대로 ... ... 오픈 상태로 유지 그들에게 확인) 부모 폼의 Touch 속성을 자동으로 가져옵니다! 그러므로 처음에는 제스처가 폼과 컨트롤 전체에서 작동하는 것처럼 보였습니다. 왜냐하면 버튼은 언제든지 포커스를 취하지 않기 때문입니다. 제스처가 assits되지 않는 한 그들에게 작동해서는 안됩니다. 그들이 있었기 때문에, 나는 모든 요소가 touch 속성을 할당 받았다고 생각했습니다.

그래서 양식에 많은 양의 요소가 포함되어 양식이 처음 표시 될 때 모두 Touch 속성을 사용하게되어 분명히 지연이 발생했습니다.

컨트롤 위에 패널을 만들면 실제로 변경된 것처럼 보이지 않지만 폼은 즉시 표시되고 동작은 패널 (배경)이있는 영역에서만 작동합니다. 볼 수 있습니다 (부끄러움, 버튼을 다 치지 않고 작업하는 것이 좋을 것입니다. 그러나 그 많은 지연이 없어서!), 어떻게 든 그것이 내 필요에 맞습니다.

지금, 왜

+0

유리 단추는 부모 구성 요소의 제스처를 차단하지 않도록 이러한 방식으로 디자인되었습니다. 이제 왜 이렇게 많은 지연이 생기는 지 잘 모르겠습니다. 나는 그 절차 적으로 생성 된 버튼 각각에 제스처 관리자를 할당하여 지연의 원인인지 여부를 확인하려고했지만 제 경우에는 그렇지 않았습니다. 아마도 그것은 로컬 변수에서 제스처 관리자를 지정했기 때문 이었지만 TMS 구성 요소는 제스처 관리자에 대한 정보를 저장하는 양식 속성을 읽는 중일 수 있습니다.이 속성은 약간 느려질 수 있습니다. – SilverWarior

+0

방금 ​​터치 터치 관리자에서 2000 터치 패널에 터치 터치 속성을 직접 읽고 지역 변수에서 설정하여 터치 관리자에 대한 비교 테스트를했는데 눈에 띄는 차이는 없습니다. 두 경우 모두 완료하는 데 1 밀리 초가 걸렸습니다. 따라서 TMS Advanced Glass Button은 GestureManager 속성이 수정 된 후 일부 처리를 수행합니다. Lest의 단일 TMS 버튼에서 GestureManager 속성을 빠르게 변경하여 Panel과 같은 일부 표준 VCL 컨트롤에 대해 동일한 작업을 수행하는 것보다 시간이 걸리는 지 확인할 수 있습니다. – SilverWarior

+0

좋은 조언/제안. 가능한 한 빨리 둘 사이의 시간을 비교하고 결과를 얻으려는 예를 들어 보겠습니다. –