--- ---

The example listed below shows a scrollbar with a BackBitMap property. You can set any picture you like there and it will be painted as the background of the control.

    { ... }
      TMyPictureScrollBar = class(TScrollBar)
      protected
        FBackBitMap: TBitMap;
        procedure CNCtlColorScrollBar(var Msg: TMessage);
          message CN_CTLCOLORSCROLLBAR;
        procedure SetBackBitMap(AValue: TBitMap);
      public
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
      published
        property BackBitMap: TBitMap read FBackBitMap write SetBackBitMap;
      end;

    constructor TMyPictureScrollBar.Create(AOwner: TComponent);
    begin
      FBackBitMap := TBitMap.Create;
      FBackBitMap.Canvas.Brush.Color := clYellow;
      inherited Create(AOwner);
    end;

    destructor TMyPictureScrollBar.Destroy;
    begin
      FBackBitMap.Free;
      FBackBitMap := nil;
      inherited Destroy;
    end;

    procedure TMyPictureScrollBar.CNCtlColorScrollBar(var Msg: TMessage);
    begin
      if not FBackBitMap.Empty then
        FBackBitMap.Canvas.Brush.Bitmap := FBackBitMap;
      Msg.Result := FBackBitMap.Canvas.Brush.Handle;
    end;

    procedure TMyPictureScrollBar.SetBackBitMap(AValue: TBitMap);
    begin
      FBackBitMap.Assign(AValue);
      Invalidate;
    end;