Delphi TTrackBar有两个跟踪变化的事件:
的OnChange
OnTracking
但他们两个都做同样的事情。例如:
var i = 0;
var intervalID = setInterval(function() {
if (i < strArray.length) {
$("use").css("fill", "#333333");
$("use." + strArray[i]).css("fill", colors[Math.floor((Math.random() * colors.length) + 1)]);
clearInterval(intervalID)
}
i++;
}, 1000);
在任何小改动时,它会显示procedure TForm1.TrackBar1Change(Sender: TObject);
begin
ShowMessage(TrackBar1.Value.ToString);
end;
消息。
如何检测手机上的最后更改?所有跟踪后必须进行更改吗?
答案 0 :(得分:4)
这两个事件仅在启用Tracking
时执行相同的操作(默认情况下)。禁用Tracking
会使OnChange
仅在用户完成后触发。
这是一个简短的演示来展示我的意思:
unit Unit1;
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.Controls.Presentation;
type
TForm1 = class(TForm)
TrackBar1: TTrackBar;
lblChange: TLabel;
lblTrack: TLabel;
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar1Tracking(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
FChangeCount: Integer;
FTrackCount: Integer;
public
procedure DoUpdate;
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.DoUpdate;
begin
lblChange.Text:= 'Changes: '+IntToStr(FChangeCount);
lblTrack.Text:= 'Tracking: '+IntToStr(FTrackCount);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FChangeCount:= 0;
FTrackCount:= 0;
DoUpdate;
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Inc(FChangeCount);
DoUpdate;
end;
procedure TForm1.TrackBar1Tracking(Sender: TObject);
begin
Inc(FTrackCount);
DoUpdate;
end;
end.
然后是FMX文件:
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 480
ClientWidth = 640
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop]
OnCreate = FormCreate
DesignerMasterStyle = 0
object TrackBar1: TTrackBar
CanParentFocus = True
Orientation = Horizontal
Position.X = 112.000000000000000000
Position.Y = 96.000000000000000000
Size.Width = 217.000000000000000000
Size.Height = 19.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
Tracking = False
OnChange = TrackBar1Change
OnTracking = TrackBar1Tracking
end
object lblChange: TLabel
Position.X = 112.000000000000000000
Position.Y = 152.000000000000000000
Text = 'lblChange'
end
object lblTrack: TLabel
Position.X = 112.000000000000000000
Position.Y = 200.000000000000000000
Text = 'lblTrack'
end
end