pei*_* F. 1 delphi firemonkey delphi-10-seattle delphi-10.1-berlin
Delphi TTrackBar 有两个事件用于跟踪更改:
变化时
追踪中
但他们俩都做同样的事情。例如:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
ShowMessage(TrackBar1.Value.ToString);
end;
Run Code Online (Sandbox Code Playgroud)
任何小的变化都会显示10消息。
如何检测手机上的最后更改?所有跟踪之后都必须发生更改吗?
这两个事件仅在启用时(默认情况下)执行相同的操作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.
Run Code Online (Sandbox Code Playgroud)
然后是 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
745 次 |
| 最近记录: |