Delphi TTrackBar没有完整的活动

时间:2016-08-25 17:54:16

标签: delphi firemonkey delphi-10-seattle delphi-10.1-berlin

Delphi TTrackBar有两个跟踪变化的事件:

  1. 的OnChange

  2. OnTracking

  3. 但他们两个都做同样的事情。例如:

        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; 消息。

    如何检测手机上的最后更改?所有跟踪后必须进行更改吗?

1 个答案:

答案 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