2014-07-10 2 views
0

나는 약 16 개의 행과 5 개의 열을 가진 gridpanellayout을 가지고있다. 각 필드에는 예를 들어 TalignLayout.Client로 설정된 TRectangle이 있습니다. 각 사각형에는 작업을 수행하는 onclick 이벤트가 있습니다 (예 : 클릭 한 사각형을 색상 변경하여 강조 표시). 16 행으로, 내 gridpanel은 아이폰과 같은 사용자 장치의 높이를 초과하므로 Grid가 VerticalScrollbox 위에 배치됩니다.스크롤링 대 델파이 XE6 선택

터치를 사용하여 항목을 강조 표시 할 때 손가락을 사용하여 스크롤하는 사용자 사이를 해독하는 가장 좋은 방법은 무엇입니까? 나는 단순히 클릭 이벤트를 더블 클릭 이벤트로 변경하는 것을 생각한 가장 쉬운 옵션으로 생각했다.

제안 사항?

답변

0

내 제안 및 해결 방법은 마우스를 사용하여 MouseDown 이벤트를 시간 간격으로 측정합니다.

unit UnitMainForm; 

interface 

uses 
    System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 
    FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, 
    FMX.Layouts; 

    type 
    TForm1 = class(TForm) 
    VertScrollBox1: TVertScrollBox; 
    GridPanelLayout1: TGridPanelLayout; 
    Button1: TButton; 
    Button2: TButton; 
    Button3: TButton; 
    Button4: TButton; 
    Button5: TButton; 
    Button6: TButton; 
    Button7: TButton; 
    Button8: TButton; 
    Button9: TButton; 
    Button10: TButton; 
    Button11: TButton; 
    Button12: TButton; 
    procedure Button1MouseUp(Sender: TObject; Button: TMouseButton; 
     Shift: TShiftState; X, Y: Single); 
    procedure Button1MouseDown(Sender: TObject; Button: TMouseButton; 
     Shift: TShiftState; X, Y: Single); 
    private 
    { Private-Deklarationen } 
    FTimeStamp: TDateTime; 
     public 
    { Public-Deklarationen } 
    end; 

var 
    Form1: TForm1; 

implementation 

{$R *.fmx} 

uses 
    System.DateUtils; 

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; 
    Shift: TShiftState; X, Y: Single); 
begin 
    FTimeStamp := Now; 
    TButton(Sender).Text := 'Mouse Down'; 
end; 

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton; 
    Shift: TShiftState; X, Y: Single); 
begin 
    TButton(Sender).Text := 'Mouse Up ' + IntToStr(MilliSecondOf(Now-FTimeStamp)); 
    if (MilliSecondOf(Now-FTimeStamp) < 200) then 
    begin 
    TButton(Sender).Text := TButton(Sender).Text + ' OK'; 
    end; 
end; 

end. 

200 밀리 초 미만의 시간이 지나면 손가락 터치가 제안되며 잘 수행해야합니다.

관련 문제