滚动与selectdelphiXE6

我有一个有16行5列的gridpanellayout。 每个字段都有一个设置为TalignLayout.Client的TRectangle。每个矩形都有一个onclick事件来执行一个动作(例如,通过改变颜色来突出显示被点击的矩形)。 有16行,我的网板超过了用户设备,如iPhone的高度,所以我把网格放在VerticalScrollbox的顶部。

使用手指滚动的用户与使用触摸来突出显示项目之间的最佳方式是什么? 我想最简单的select,我想到了它只是改变点击事件双击事件。

有什么build议么?

我的build议和解决方法是使用MouseDown和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. 

如果时间less于200毫秒,则build议使用手指触摸,并且您应该好好走。