TrackBar в Delphi

1 отговора 69 прегледа
#1

TrackBar в Delphi

Здравейте,
как мога да накарам TrackBar в Delphi, когато щракна някъде по него маркера да се премести веднага там. Сега мога да го позиционирам като хвана маркера и го влача до мястото.

Отговор
в отговор на PeteRHR #2

Re: TrackBar в 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 на

Отговор