2017-01-06 12 views
1

Delphi XE8을 사용하여 Android 응용 프로그램을 개발하고 있는데 버튼을 클릭하면 VertScrollBox의 어딘가에있는 특정 구성 요소를 보려면 VertuallyScrollBox의 ViewportPosition을 이동하려고합니다.Firemonkey TVertScrollBox VCL ScrollBox 대신 ScrollInView

그러나 ViewportPosition 값이 작동하지 않습니다 (여기에서 대답을 시도했습니다 : Go Top a TVertScrollBox) 및 ScrollBy 메서드가 작동하지 않습니다 (http://docwiki.embarcadero.com/Libraries/Seattle/en/FMX.Layouts.TVertScrollBox).

procedure TFormTournee.T3ButtonBackToTopClick(Sender: TObject); 
begin 
    T1VertScrollBox.ViewportPosition := PointF(T1VertScrollBox.ViewportPosition.X, 0); 
    T1VertScrollBox.RealignContent; 
end; 

그리고 그 :

내가이 시도 난 그냥 윈도우에서했는데, 지금은

procedure TFormTournee.T3ButtonBackToTopClick(Sender: TObject); 
begin 
    T1VertScrollBox.ScrollBy(0,-100); 
    T1VertScrollBox.RealignContent; 
end; 

을 (내가 부족한 스토리지에 대한 안드로이드에 다른 문제를 해결해야한다), 아무것도하지만, 클릭하면 변경되고 Windows 및 Android에서도 동일하게 작동한다고 가정합니다. 그렇지 않습니까? 아무도 나 좀 도와 줄 수 있니, 제발? 아니면 제가 잘못하고있는 것을 설명해 주시겠습니까? 감사 !

+0

(xe8) tvertscrollBox는 버그가있어서 firemonkey에서는 피해야합니다. Talvertscrollbox (완전히 TiltscrollBox에 similare)로 시도해 주실 수 있습니까? https://svn.code.sf.net/p/alcinoe/code/ – loki

+0

xe8을 시도한 적이 없습니까? (오류가 있습니까?) – loki

+0

고맙습니다. Answer, readme_firemonkey.txt의 _INSTALL_ 부분에 설명되어있는 것처럼 설치하려고 시도했지만 작동하지 않습니다. 1. _java \ dex \ xx \ classes.dex_를 가지고 다음과 같이 입력하십시오. _classes_dex.png_, 델파이가 말하는 _INSTALL_FAILED_DEXOPT_; 2. _java/build_xx.bat_ (% ANDROID % 및 % EMBO_DEX % 변수가 설정 됨)를 실행하려고하면 지정된 모든 파일을 추적 할 수 없습니다. 아마도 뭔가를 잊어 버리는 것 같습니다. 또는 일부 파일을 가져 왔지만 초보자이며이 Talvertscrollbox와 같은 외부 구성 요소에 익숙하지 않습니다. – Manon

답변

1

TVertScrollBox에서 ScrollBy 또는 ViewportPosition을 사용하여 스크롤을 프로그래밍하려는 사람이 있고 작동하지 않는 경우 댓글에서 @loki의 링크는 Windows 및 Android에서 작동하는 대체 기능을 나타냅니다. iOS에서 시도 할 수는 없지만 작동해야 함) (https://svn.code.sf.net/p/alcinoe/code/). Delphi XE8에서 작업하기 때문에 약간 조정해야했지만 정말 빨랐습니다. 해당 절차에

은 버튼을 클릭하면 구성 요소 패널에 VertScrollBox을 positionned :

procedure TFormTournee.ButtonClick(Sender: TObject); 
begin 
    // The position is placed at the top 
    ALVertScrollBox1.ScrollBy(0, ALVertScrollBox.Width); 
    // And then it go down to the panel position 
    ALVertScrollBox1.ScrollBy(0, -Panel.Position.Y); 
end; 

한 번 더, 당신은 @loki 감사합니다!