TTrackBar для эстетов
В стандартном компоненте всегда присутствует диапазон выбора (см. на рисунке нижний TTrackBar). К сожалению, в Delphi не предусмотрена возможность его отключения. Если нет необходимости в использовании диапазона выбора, то поможет небольшая доработка компонента.
unit NTrackBar;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, CommCtrl;
type
TNTrackBar = class(TTrackBar)
private
FSelRangeVisible: Boolean;
procedure SetSelRangeVisible(const Value: Boolean);
protected
procedure CreateParams(var Params: TCreateParams); override;
public
constructor Create(AOwner: TComponent); override;
published
property SelRangeVisible: Boolean read FselRangeVisible
write SetSelRangeVisible;
end;
procedure Register;
implementation
{ TNTrackBar }
constructor TNTrackBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FSelRangeVisible := False;
ThumbLength := 18;
end;
procedure TNTrackBar.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do begin
if not FSelRangeVisible then Style := Style xor TBS_ENABLESELRANGE
else Style := Style or TBS_ENABLESELRANGE;
end;
end;
procedure TNTrackBar.SetSelRangeVisible(const Value: Boolean);
begin
if FSelRangeVisible <> Value then begin
FSelRangeVisible := Value;
RecreateWnd;
end;
end;
procedure Register;
begin
RegisterComponents('Controls', [TNTrackBar]);
end;
end.
[VS]