滚动与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议使用手指触摸,并且您应该好好走。
- 如何使用RAD Studio FireMonkey在iOS和Android上启动导航应用程序?
- 在Firemonkey中获取Android设备和操作系统信息
- Delphi + iOS:如何声明简单的ObjC-Class?
- Delphi / Firemonkey在运行时更改iOS屏幕旋转
- 应用程序在iOS和Android上恢复状态
- 在FMX.Platform.iOS中重载一个方法
- Delphi XE4和iOS Application Loader抱怨“这个包无效”
- Delphi iOS的IPv6麻烦。 请确保您的应用程序与IPv6networking兼容
- Delphi 10.1 Berlin idHTTP / IPv6 / iOS / Socket错误#51networking无法访问