mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-25 17:29:07 +02:00
git-svn-id: trunk@15443 -
This commit is contained in:
parent
1d22108b2f
commit
4e53453599
lcl
@ -57,7 +57,7 @@ constructor TCustomTrackBar.Create (AOwner : TComponent);
|
||||
begin
|
||||
inherited Create (aOwner);
|
||||
fCompStyle := csTrackbar;
|
||||
Caption := 'TrackBar';
|
||||
ControlStyle := ControlStyle - [csCaptureMouse];
|
||||
FLineSize := 1;
|
||||
FMax := 10;
|
||||
FMin := 0;
|
||||
@ -67,9 +67,9 @@ begin
|
||||
FOrientation := trHorizontal;
|
||||
FScalePos := trTop;
|
||||
FScaleDigits := 0;
|
||||
FTickMarks:=tmBottomRight;
|
||||
FTickStyle:=tsAuto;
|
||||
TabStop := true;
|
||||
FTickMarks := tmBottomRight;
|
||||
FTickStyle := tsAuto;
|
||||
TabStop := True;
|
||||
SetInitialBounds(0,0,GetControlClassDefaultSize.X,GetControlClassDefaultSize.Y);
|
||||
end;
|
||||
|
||||
@ -193,7 +193,7 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TCustomTrackBar.SetMax(Value: Integer);
|
||||
begin
|
||||
if FMax<>Value then SetParams(FPosition,FMin,Value);
|
||||
if FMax <> Value then SetParams(FPosition,FMin,Value);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
@ -293,8 +293,8 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TCustomTrackBar.ApplyChanges;
|
||||
begin
|
||||
if HandleAllocated and (not (csLoading in ComponentState))
|
||||
then TWSTrackBarClass(WidgetSetClass).ApplyChanges(Self);
|
||||
if HandleAllocated and (not (csLoading in ComponentState)) then
|
||||
TWSTrackBarClass(WidgetSetClass).ApplyChanges(Self);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
|
@ -510,6 +510,7 @@ type
|
||||
|
||||
TQtTrackBar = class(TQtAbstractSlider)
|
||||
private
|
||||
FInUpdate: Boolean;
|
||||
protected
|
||||
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
|
||||
public
|
||||
@ -522,6 +523,9 @@ type
|
||||
procedure SlotSliderMoved(p1: Integer); cdecl; override;
|
||||
procedure SlotValueChanged(p1: Integer); cdecl; override;
|
||||
procedure SlotRangeChanged(minimum: Integer; maximum: Integer); cdecl; override;
|
||||
procedure BeginUpdate;
|
||||
procedure EndUpdate;
|
||||
function InUpdate: Boolean; inline;
|
||||
end;
|
||||
|
||||
{ TQtLineEdit }
|
||||
@ -4560,6 +4564,7 @@ begin
|
||||
{$ifdef VerboseQt}
|
||||
WriteLn('TQtTrackBar.Create');
|
||||
{$endif}
|
||||
FInUpdate := False;
|
||||
Result := QSlider_create();
|
||||
end;
|
||||
|
||||
@ -4617,14 +4622,11 @@ begin
|
||||
{$ifdef VerboseQt}
|
||||
writeln('TQtTrackBar.SlotSliderMoved()');
|
||||
{$endif}
|
||||
FillChar(Msg, SizeOf(Msg), #0);
|
||||
|
||||
Msg.Msg := LM_CHANGED;
|
||||
try
|
||||
if (TTrackBar(LCLObject).Position<>p1) then
|
||||
LCLObject.WindowProc(Msg);
|
||||
except
|
||||
Application.HandleException(nil);
|
||||
if (TTrackBar(LCLObject).Position <> p1) and not InUpdate then
|
||||
begin
|
||||
FillChar(Msg, SizeOf(Msg), #0);
|
||||
Msg.Msg := LM_CHANGED;
|
||||
DeliverMessage(Msg);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -4636,14 +4638,11 @@ begin
|
||||
writeln('TQtTrackBar.SlotValueChanged()');
|
||||
{$endif}
|
||||
|
||||
FillChar(Msg, SizeOf(Msg), #0);
|
||||
|
||||
Msg.Msg := LM_CHANGED;
|
||||
try
|
||||
if not SliderPressed and (TTrackBar(LCLObject).Position<>p1) then
|
||||
LCLObject.WindowProc(Msg);
|
||||
except
|
||||
Application.HandleException(nil);
|
||||
if not SliderPressed and (TTrackBar(LCLObject).Position <> p1) and not InUpdate then
|
||||
begin
|
||||
FillChar(Msg, SizeOf(Msg), #0);
|
||||
Msg.Msg := LM_CHANGED;
|
||||
DeliverMessage(Msg);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -4654,10 +4653,28 @@ begin
|
||||
{$ifdef VerboseQt}
|
||||
writeln('TQtTrackBar.SlotRangeChanged()');
|
||||
{$endif}
|
||||
FillChar(Msg, SizeOf(Msg), #0);
|
||||
if not InUpdate then
|
||||
begin
|
||||
FillChar(Msg, SizeOf(Msg), #0);
|
||||
|
||||
Msg.Msg := LM_CHANGED;
|
||||
DeliverMessage(Msg);
|
||||
Msg.Msg := LM_CHANGED;
|
||||
DeliverMessage(Msg);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TQtTrackBar.BeginUpdate;
|
||||
begin
|
||||
FInUpdate := True;
|
||||
end;
|
||||
|
||||
procedure TQtTrackBar.EndUpdate;
|
||||
begin
|
||||
FInUpdate := False;
|
||||
end;
|
||||
|
||||
function TQtTrackBar.InUpdate: Boolean;
|
||||
begin
|
||||
Result := FInUpdate;
|
||||
end;
|
||||
|
||||
|
||||
|
@ -246,9 +246,9 @@ implementation
|
||||
const
|
||||
TickMarkToQtSliderTickPositionMap: array[TTickMark] of QSliderTickPosition =
|
||||
(
|
||||
{tmBoth } QSliderTicksBothSides,
|
||||
{tmBottomRight} QSliderTicksBelow,
|
||||
{tmTopLeft } QSliderTicksAbove,
|
||||
{tmBottomRight} QSliderTicksBelow
|
||||
{tmBoth } QSliderTicksBothSides
|
||||
);
|
||||
|
||||
TrackBarOrientationToQtOrientationMap: array[TTrackBarOrientation] of QtOrientation =
|
||||
@ -358,10 +358,14 @@ var
|
||||
QtTrackBar: TQtTrackBar;
|
||||
begin
|
||||
QtTrackBar := TQtTrackBar(ATrackBar.Handle);
|
||||
QtTrackBar.BeginUpdate;
|
||||
|
||||
QtTrackBar.setRange(ATrackBar.Min, ATrackBar.Max);
|
||||
|
||||
QtTrackBar.SetTickPosition(TickMarkToQtSliderTickPositionMap[ATrackBar.TickMarks]);
|
||||
if ATrackBar.TickStyle = tsNone then
|
||||
QtTrackBar.SetTickPosition(QSliderNoTicks)
|
||||
else
|
||||
QtTrackBar.SetTickPosition(TickMarkToQtSliderTickPositionMap[ATrackBar.TickMarks]);
|
||||
|
||||
if QtTrackBar.getPageStep <> ATrackBar.PageSize then
|
||||
QtTrackBar.setPageStep(ATrackBar.PageSize);
|
||||
@ -378,6 +382,7 @@ begin
|
||||
QtTrackBar.setInvertedControls(False);
|
||||
QtTrackBar.Show;
|
||||
end;
|
||||
QtTrackBar.EndUpdate;
|
||||
end;
|
||||
|
||||
class function TQtWSTrackBar.GetPosition(const ATrackBar: TCustomTrackBar): integer;
|
||||
|
Loading…
Reference in New Issue
Block a user