2016-08-25 3 views
0

델파이 TTrackBar 추적 변경에 대한 두 개의 이벤트가 완료 이벤트가 없습니다 . 예 :델파이 TTrackBar는

procedure TForm1.TrackBar1Change(Sender: TObject); 
begin 
    ShowMessage(TrackBar1.Value.ToString); 
end; 

작은 변경의 경우 10 메시지가 표시됩니다.

휴대 전화에서 마지막 변경을 어떻게 감지합니까? 모든 추적 후에 변경해야합니까?

+2

당신이'Tracking'을 해제 해봤를

여기에 내가 무슨 뜻인지 보여줄 수있는 간단한 데모입니까? 그들은 더 이상 같은 일을하지 않습니다 ... –

답변

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