... стандартний трекбар буде ще й від маніфесту залежати. Краще реалізувати свій движок (ви правильно відзначили за скіни ... є набір TMS, наприклад).
Але найпростіше двома TImage.
1- робимо 3 картинки bitmap (або в одну всі, потiм copyrect-ом порiзати): висотою 1 пкс підкладка движка, сам Траск-движок в початковому стані і стані взяття
2- картинки заганяємо в ресурси, читаємо з ресурсу за допомогою TResourceStream
3- transparent Імейджа в true
Події на фоновому:
var dv_move: tpoint;
procedure tvid.set_pos (_x: longint);
begin
...
end;
procedure Tvid.SldPosbackMouseDown (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (Button = mbLeft) then set_pos (x)
end;
procedure Tvid.SldPosbackMouseMove (Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Shift = [ssLeft] then set_pos (x)
end;
Події движка:
procedure tvid.dv_nmov;
begin
if dv.Left <16- (dv.Width div 2) then
dv.Left: = 16- (dv.Width div 2);
if dv.Left> SldPosBack.Width + 16- (dv.Width div 2) then
dv.Left: = SldPosBack.Width + 16- (dv.Width div 2)
end;
procedure Tvid.dvMouseDown (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// Підвантажуємий першу
img.Picture.Bitmap.assign (src1);
dv_move: = Point (x, y)
end;
procedure Tvid.dvMouseMove (Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (ssLeft in Shift) and (Player.Initialized) then begin
dv.Left: = dv.Left + x - dv_move.X;
dv_nmov;
set_pos (dv.Left-16)
end
end;
procedure Tvid.dvMouseUp (Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// другу
img.Picture.Bitmap.assign (src2);
end;
Як це виглядає в моєму DS-плеєрі/системi керування https://www.youtube.com/watch?v=HvIPmnjWW0s