Советы по Delphi



TrackBar для эстетов



В стандартном компоненте всегда присутствует диапазон выбора (см. на рисунке нижний TrackBar). К сожалению, в 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.

C уважением, VS [001692]




Содержание