TrackBar в Delphi
1 отговора
69 прегледа
TrackBar в Delphi
Здравейте,
как мога да накарам TrackBar в Delphi, когато щракна някъде по него маркера да се премести веднага там. Сега мога да го позиционирам като хвана маркера и го влача до мястото.
как мога да накарам TrackBar в Delphi, когато щракна някъде по него маркера да се премести веднага там. Сега мога да го позиционирам като хвана маркера и го влача до мястото.
Re: TrackBar в Delphi
ето едно решение:
направено е за хоризонтален бар, аналогично е и за вертикален.
обаче е гърбаво в граничните случаи - за min и max позициите
btw, по-размно е такива въпроси /конкретно и само за Delphi/ да ги пускаш в клуб Delphi...
--------------------------------------
Започва Път от моят праг...
procedure TForm1.TrackBar1Change(Sender: TObject);
var MP: TPoint;
newPos : Integer;
begin
GetCursorPos(MP);
MP := TrackBar1.ScreenToClient(MP);
newPos := Round(TrackBar1.Min + (MP.X - 8) * ((TrackBar1.Max - TrackBar1.Min) / (TrackBar1.Width - 16)));
if newPos < TrackBar1.Min then newPos := TrackBar1.Min;
if newPos > TrackBar1.Max then newPos := TrackBar1.Max;
TrackBar1.Position := newPos;
end;
направено е за хоризонтален бар, аналогично е и за вертикален.
обаче е гърбаво в граничните случаи - за min и max позициите
btw, по-размно е такива въпроси /конкретно и само за Delphi/ да ги пускаш в клуб Delphi...
--------------------------------------
Започва Път от моят праг...
Редактирано от Hateras на